Submission #1138100

#TimeUsernameProblemLanguageResultExecution timeMemory
1138100secretwood01Take-out (POI13_usu)Java
Compilation error
0 ms0 KiB
import java.util.*;
import java.io.*;

public class Takeout {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw = new PrintWriter(System.out);
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int k = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        char [] a = st.nextToken().toCharArray();
        TreeMap<Integer, Ans> ans = new TreeMap<>();
        TreeSet<Integer> used = new TreeSet<>();
        for (int i=0;i<N;i++) {
            if (a[i]=='c') {
                ans.put(i, new Ans(i));
            }
        }
        for (int x : ans.keySet()) {
            if (x==ans.firstKey()) ans.get(x).prev = -1;
            else ans.get(x).prev = ans.lowerKey(x);
        } 
        int currclosest = ans.firstKey();
        for (int i=0;i<N;i++) {
            if (a[i]=='c') {
                currclosest = i;
                continue;
            }
            int ogc = currclosest;
            while (ans.get(currclosest).set.size()>=k+1) {
                used.add(currclosest);
                currclosest = ans.get(currclosest).prev;
                if (currclosest==-1) currclosest = ans.higherKey(used.last());
            }
            ans.get(currclosest).set.add(i);
        }
        Ans [] print = new Ans[ans.size()];
        int ind = 0;
        for (int x : ans.keySet()) {
            print[ind] = ans.get(x);
            ind++;
        }
        Arrays.sort(print);
        for (Ans x : print) {
            pw.println(x.toString());
        }
        pw.close();
        br.close();
    }
}
class Ans implements Comparable<Ans> {
    TreeSet<Integer> set;
    int dif;
    int prev;
    public Ans(int i) {
        set = new TreeSet<>();
        set.add(i);
    }
    public void calcDif() {
        dif = set.last()-set.first();
    }
    public int compareTo(Ans a) {
        this.calcDif();
        a.calcDif();
        return Integer.compare(a.dif, dif);
    }
    public String toString() {
        TreeSet<Integer> dup = (TreeSet<Integer>)set.clone();
        String S = "";
        while (dup.size()>1) {
            S+=(dup.pollFirst()+1)+" ";
        }
        S+=(dup.pollFirst()+1);
        return S;
    }
}

Compilation message (stderr)

usu.java:4: error: class Takeout is public, should be declared in a file named Takeout.java
public class Takeout {
       ^
Note: usu.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error

=======