ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Discussion of Problem 1106. Two Teams

WA in test 7
Posted by ROY 15 Apr 2013 13:23
 What is test 7?  here is my code. It is working on the available sample inputs. Please help.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.StringTokenizer;

/**
 *
 * @author proy
 */
class Reader
{
    static BufferedReader reader;
    static StringTokenizer tokenizer;

    /** call this method to initialize reader for InputStream */
    static void init(InputStream input)
    {
        reader = new BufferedReader(new InputStreamReader(input) );
        tokenizer = new StringTokenizer("");
    }

    /** get next word */
    static String next() throws IOException
    {
        while ( ! tokenizer.hasMoreTokens() )
        {
            //TODO add check for eof if necessary
            tokenizer = new StringTokenizer(reader.readLine() );
        }
        return tokenizer.nextToken();
    }

    static int nextInt() throws IOException
    {
        return Integer.parseInt( next() );
    }

    static double nextDouble() throws IOException
    {
        return Double.parseDouble( next() );
    }
}
public class p1106
{

    public static void main(String args[]) throws IOException
    {
        int a;
        Reader.init(System.in);

        int n = Reader.nextInt();
        int graph[][]= new int[n][n];
        ArrayList<ArrayList<Integer>> st = new ArrayList<ArrayList<Integer>>();
        ArrayList<Integer> grp1 = new ArrayList<Integer>();
        ArrayList<Integer> grp2 = new ArrayList<Integer>();
        for (int i = 0; i<n;i++)
        {
            ArrayList<Integer> ar = new ArrayList<Integer>();
            do
            {
                a = Reader.nextInt();
                if(a !=0)
                {
                    graph[i][a-1] = 1;
                    ar.add(a-1);
                }

            }
            while(a!=0);
            st.add(ar);
        }



        if(n!=0)
        {
            grp1.add(0);
            for(int i = 1; i<n; i++)
            {
                if(graph[0][i]!= 1 )
                {
                    grp1.add(i);
                }

                else
                {
                    grp2.add(i);
                }
            }

            for(int i = 1; i<grp1.size();i++)
            {
                int x = grp1.get(i);

                if(!st.get(x).isEmpty())
                {
                   boolean frFlag = false;
                   Iterator it = st.get(x).iterator();
                   while(it.hasNext())
                   {
                       if(grp2.contains((Integer)it.next()))
                       {
                           frFlag = true;
                           continue;
                       }
                   }

                   if(!frFlag)
                   {
                       Integer rm = st.get(x).get(0);
                       //grp1.r
                       grp1.remove(rm);
                       grp2.add(rm);
                   }
                }

            }

            System.out.println(grp1.size());
            Iterator it1 = grp1.iterator();
            while(it1.hasNext())
            {
                System.out.print(((Integer)it1.next()+1)+ " ");
            }
        }

        else
        {
            System.out.println(0);
        }

    }

}