Go to diff to previous submission
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * * @author cteam040 */ import java.util.*; import java.io.*; public class ants { { StringTokenizer st; String ln; while((ln=br.readLine())!=null) { boolean maxright=false,maxleft = true; List<Integer> pp = new ArrayList<Integer>(2); List<Ant> ants = new ArrayList<Ant>(mrav); int maxdist = -1; for(int i=0;i<mrav;i++) { int dist = -1; boolean left = false; if("R".equals(st.nextToken())) { dist = len-apos; left = false; ants.add(new Ant(apos,false,dist)); } else { dist = apos; left = true; ants.add(new Ant(apos,true,dist)); } if(dist>maxdist) { pp.clear(); maxleft = false; maxright = false; maxdist = dist; } if(dist==maxdist) { if(left) maxleft = true; else maxright = true; pp.add(apos); } } public int compare(Ant arg0, Ant arg1) { return arg0.apos-arg1.apos; } }); boolean ordered = true; int itcnt = 0; do { ordered = true; for(int i=0;i<mrav-1;i++) { if(ants.get(i).goesleft) continue; // assert goes right*/ for(int j=i+1;j<mrav;j++) { itcnt ++; if(!ants.get(j-1).goesleft && ants.get(j).goesleft) { ordered = false; ants.get(j-1).goesleft = true; ants.get(j).goesleft = false; } } } }while(!ordered); // System.out.println(itcnt); int boundary = 0; for(int i=0;i<mrav;i++) { if(!ants.get(i).goesleft) { boundary = i; break; } boundary++; } if(pp.size()==1) else } } public static class Ant { int apos; boolean goesleft; int fallsin=-1; public Ant(int apos, boolean goesleft,int fallsin) { this.apos = apos; this.goesleft = goesleft; this.fallsin = fallsin; } { return apos+"-"+goesleft; } } }