/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import java.util.stream.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone {
AtomicInteger total = new AtomicInteger();
ConcurrentLinkedQueue<Integer> q = new ConcurrentLinkedQueue<>();
int remaining = 10000;
while (remaining != 0) {
total.incrementAndGet();
if (q.poll() != null) {
remaining--;
}
}
});
for (int i = 0 ; i != 100 ; i++) {
first100[i] = i;
}
long start
= System.
nanoTime(); thread.start();
for (int i = 0 ; i != 10000 ; i++) {
q.add(first100[i%100]);
}
thread.join();
long runtime
= System.
nanoTime() - start
; System.
out.
println(total.
get()); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC4qOwppbXBvcnQgamF2YS51dGlsLmNvbmN1cnJlbnQuYXRvbWljLio7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbiB7CiAgICAgICAgQXRvbWljSW50ZWdlciB0b3RhbCA9IG5ldyBBdG9taWNJbnRlZ2VyKCk7CiAgICAgICAgQ29uY3VycmVudExpbmtlZFF1ZXVlPEludGVnZXI+IHEgPSBuZXcgQ29uY3VycmVudExpbmtlZFF1ZXVlPD4oKTsKICAgICAgICBUaHJlYWQgdGhyZWFkID0gbmV3IFRocmVhZCgoKSAtPiB7CiAgICAgICAgCWludCByZW1haW5pbmcgPSAxMDAwMDsKICAgICAgICAgICAgd2hpbGUgKHJlbWFpbmluZyAhPSAwKSB7CiAgICAgICAgICAgICAgICB0b3RhbC5pbmNyZW1lbnRBbmRHZXQoKTsKICAgICAgICAgICAgICAgIGlmIChxLnBvbGwoKSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nLS07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBJbnRlZ2VyW10gZmlyc3QxMDAgPSBuZXcgSW50ZWdlclsxMDBdOwogICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSAhPSAxMDAgOyBpKyspIHsKICAgICAgICAJZmlyc3QxMDBbaV0gPSBpOwogICAgICAgIH0KICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLm5hbm9UaW1lKCk7CiAgICAgICAgdGhyZWFkLnN0YXJ0KCk7CiAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpICE9IDEwMDAwIDsgaSsrKSB7CiAgICAgICAgICAgIHEuYWRkKGZpcnN0MTAwW2klMTAwXSk7CiAgICAgICAgfQogICAgICAgIHRocmVhZC5qb2luKCk7CiAgICAgICAgbG9uZyBydW50aW1lID0gU3lzdGVtLm5hbm9UaW1lKCkgLSBzdGFydDsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocnVudGltZSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRvdGFsLmdldCgpKTsKICAgIH0KfQ==