UVA 11586 – Train Tracks

Pretty easy. Loops are formed if you have an even number of MF/FM tracks and an equal number of MM and FF tracks. Just check for both conditions to be true.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;

/**
 * 
 * @author Sanchit M. Bhatnagar
 * @see http://uhunt.felix-halim.net/id/74004
 * 
 */
public class P11586 {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    PrintWriter out = new PrintWriter(System.out);

    int[] count;
    int N = Integer.parseInt(br.readLine().trim());
    for (int zz = 0; zz < N; zz++) {
      count = new int[] { 0, 0 };
      StringTokenizer st = new StringTokenizer(br.readLine().trim());
      while (st.hasMoreTokens()) {
        String input = st.nextToken();
        if (input.equals("MF") || input.equals("FM")) {
          if (count[0] == 0)
            count[0]++;
          else
            count[0]--;
        } else {
          if (input.equals("MM")) {
            count[1]++;
          } else {
            count[1]--;
          }
        }
      }
      if (count[0] == 0 && count[1] == 0) {
        out.println("LOOP");
      } else {
        out.println("NO LOOP");
      }
    }

    out.close();
    br.close();
  }
}

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.