/* 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();
LinkedBlockingQueue<Integer> q = new LinkedBlockingQueue<>();
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.put(first100[i%100]);
}
thread.join();
long runtime
= System.
nanoTime() - start
; System.
out.
println(total.
get()); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC4qOwppbXBvcnQgamF2YS51dGlsLmNvbmN1cnJlbnQuYXRvbWljLio7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbiB7CiAgICAgICAgQXRvbWljSW50ZWdlciB0b3RhbCA9IG5ldyBBdG9taWNJbnRlZ2VyKCk7CiAgICAgICAgTGlua2VkQmxvY2tpbmdRdWV1ZTxJbnRlZ2VyPiBxID0gbmV3IExpbmtlZEJsb2NraW5nUXVldWU8PigpOwogICAgICAgIFRocmVhZCB0aHJlYWQgPSBuZXcgVGhyZWFkKCgpIC0+IHsKICAgICAgICAJaW50IHJlbWFpbmluZyA9IDEwMDAwOwogICAgICAgICAgICB3aGlsZSAocmVtYWluaW5nICE9IDApIHsKICAgICAgICAgICAgICAgIHRvdGFsLmluY3JlbWVudEFuZEdldCgpOwogICAgICAgICAgICAgICAgaWYgKHEucG9sbCgpICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICByZW1haW5pbmctLTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIEludGVnZXJbXSBmaXJzdDEwMCA9IG5ldyBJbnRlZ2VyWzEwMF07CiAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpICE9IDEwMCA7IGkrKykgewogICAgICAgIAlmaXJzdDEwMFtpXSA9IGk7CiAgICAgICAgfQogICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0ubmFub1RpbWUoKTsKICAgICAgICB0aHJlYWQuc3RhcnQoKTsKICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgIT0gMTAwMDAgOyBpKyspIHsKICAgICAgICAgICAgcS5wdXQoZmlyc3QxMDBbaSUxMDBdKTsKICAgICAgICB9CiAgICAgICAgdGhyZWFkLmpvaW4oKTsKICAgICAgICBsb25nIHJ1bnRpbWUgPSBTeXN0ZW0ubmFub1RpbWUoKSAtIHN0YXJ0OwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihydW50aW1lKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odG90YWwuZ2V0KCkpOwogICAgfQkKfQ==