ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1106. Две команды

WA in test 7
Послано ROY 15 апр 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);
        }

    }

}