final int submissionPerProvider = 100;
final int total = provider.length * submissionPerProvider;
final int[][] count = new int[consumer.length][total];
submissions = new Submission[total];
for (int i = 0; i < total; i++) {
submissions[i] = new Submission();
submissions[i].setId(i);
submissions[i].setJudgeReply(JudgeReply.QUEUING);
}
for (int i = 0; i < consumer.length; i++) {
final int k = i;
final int[] cnt = count[k];
for (int j = 0; j < cnt.length; j++) {
cnt[j] = 0;
}
consumer[i] = new Thread() {
public void run() {
try {
for (int i = 0;; i++) {
Submission submission = queue.removeFirst();
int id = (int) submission.getId();
// System.out.println("poll " + k + " " + id);
cnt[id]++;
assertEquals(submissions[id], submission);
if (id % consumer.length == k) {
queue.addFirst(submission);
} else {
submission.setJudgeReply(JudgeReply.ACCEPTED);
}
Thread.yield();
}
} catch (InterruptedException e) {
} catch (Exception e) {