Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Why TLE?is some input?? i paste and cut te same test case 30 times and my program is fast, but if is some input i think my first while still true is because that?? import java.io.*; import java.util.*; public class Main{ public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); //BufferedReader in = new BufferedReader(new FileReader("in.txt")); StringBuffer s= new StringBuffer (); StringTokenizer st,st2; String caso; inicio: while(true) { boolean seleccion[]=new boolean[101]; String jugador[]= new String[101]; String posicion[]= new String[101]; int tiempo[]= new int[101]; for(int i=1;i<=22;i++) { caso=in.readLine().trim(); if(caso.startsWith("0")) break inicio; st= new StringTokenizer(caso); while(st.hasMoreTokens()) { int id=new Integer(st.nextToken()); seleccion[id]=true; jugador[id]=st.nextToken(); posicion[id]=st.nextToken(); while(st.hasMoreTokens()) { st2= new StringTokenizer(st.nextToken(),"-"); int inicio= new Integer(st2.nextToken()); int fin=new Integer(st2.nextToken()); tiempo[id]+=fin-inicio; } } } st2= new StringTokenizer(in.readLine(),"-"); int defensores=new Integer(st2.nextToken()); int mediocampistas=new Integer(st2.nextToken()); int delanteros=new Integer(st2.nextToken()); int arquero=1; int df=defensores; int m=mediocampistas; int dl=delanteros; int a=arquero; String equipo[]= new String[11]; Arrays.fill(equipo,"-1"); boolean states[]= new boolean[11]; int i=0; while(true){ if((arquero+defensores+mediocampistas+delanteros)==0) break; for(int j=1;j<101;j++) if(seleccion[j]){ if(arquero>0 && posicion[j].equals("G")){ equipo[i]=String.valueOf(j)+" "+jugador[j]+" "+posicion[j]; states[i]=true; arquero--; i++; }else if(defensores>0 && posicion[j].equals("D")){ equipo[i]=String.valueOf(j)+" "+jugador[j]+" "+posicion[j]; defensores--; states[i]=true; i++; }else if(mediocampistas>0 && posicion[j].equals("M")){ equipo[i]=String.valueOf(j)+" "+jugador[j]+" "+posicion[j]; mediocampistas--; states[i]=true; i++; } else if(delanteros>0 && posicion[j].equals("S")){ equipo[i]=String.valueOf(j)+" "+jugador[j]+" "+posicion[j]; delanteros--; states[i]=true; i++; } seleccion[j]=false; break; } } int max=Integer.MIN_VALUE; int pos=Integer.MIN_VALUE; for(i=0;i<11;i++) if(equipo[i].equals("-1")) break; if(i==11){ for(i=0;i<11;i++) { st= new StringTokenizer(equipo[i]); int t= new Integer(st.nextToken()); st.nextToken(); String posi=st.nextToken(); if(max<=tiempo[t]){ max=tiempo[t]; if(!posi.equals("G") && pos<t) pos=t; } } s.append(equipo[pos-1]+"\n"); states[pos-1]=false; for(i=0;i<a;i++) for(int j=0;j<11;j++) if(states[j]) if(equipo[j].charAt(equipo[j].length()-1)=='G'){ s.append(equipo[j]+"\n"); states[j]=false; } for(i=0;i<df;i++) for(int j=0;j<11;j++) if(states[j]) if(equipo[j].charAt(equipo[j].length()-1)=='D'){ s.append(equipo[j]+"\n"); states[j]=false; } for(i=0;i<m;i++) for(int j=0;j<11;j++) if(states[j]) if(equipo[j].charAt(equipo[j].length()-1)=='M'){ s.append(equipo[j]+"\n"); states[j]=false; } for(i=0;i<dl;i++) for(int j=0;j<11;j++) if(states[j]) if(equipo[j].charAt(equipo[j].length()-1)=='S'){ s.append(equipo[j]+"\n"); states[j]=false; } }else s.append("IMPOSSIBLE TO ARRANGE\n" ); s.append("\n"); } System.out.println(s); } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator