/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Counter {
private int count = 0;
public synchronized void printOdd() {
while(count%2==0){
try{
wait();
Thread.
currentThread().
interrupt(); }
}
System.
out.
println("ODD "+count
); count++; // Thread-safe increment
notify();
}
public synchronized void printEven() {
while(count%2==1){
try{
wait();
Thread.
currentThread().
interrupt(); }
}
System.
out.
println("EVEN "+count
); count++; // Thread-safe increment
notify();
}
}
class Ideone
{
{
// your code goes here
Counter c= new Counter();
@Override
public void run(){
for(int i=0;i<6;i++){
c.printEven();
}
}
}
);
@Override
public void run(){
for(int i=0;i<5;i++){
c.printOdd();
}
}
}
);
t1.start();
t2.start();
t1.join();
t2.join();
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgQ291bnRlciB7CiAgICBwcml2YXRlIGludCBjb3VudCA9IDA7CgogICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHByaW50T2RkKCkgewogICAgCXdoaWxlKGNvdW50JTI9PTApewogICAgCQl0cnl7CiAgICAJCXdhaXQoKTsKICAgIAkJfWNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpewogICAgCQlUaHJlYWQuY3VycmVudFRocmVhZCgpLmludGVycnVwdCgpOwogICAgCQl9CiAgICAJfQogICAgCVN5c3RlbS5vdXQucHJpbnRsbigiT0REICIrY291bnQpOwogICAgICAgIGNvdW50Kys7ICAvLyBUaHJlYWQtc2FmZSBpbmNyZW1lbnQKICAgICAgICAKICAgICAgICBub3RpZnkoKTsKICAgIH0KCXB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBwcmludEV2ZW4oKSB7CiAgICAJd2hpbGUoY291bnQlMj09MSl7CiAgICAJCXRyeXsKICAgIAkJd2FpdCgpOwogICAgCQl9Y2F0Y2goSW50ZXJydXB0ZWRFeGNlcHRpb24gZSl7CiAgICAJCVRocmVhZC5jdXJyZW50VGhyZWFkKCkuaW50ZXJydXB0KCk7CiAgICAJCX0KICAgIAl9CiAgICAJU3lzdGVtLm91dC5wcmludGxuKCJFVkVOICIrY291bnQpOwogICAgICAgIGNvdW50Kys7ICAvLyBUaHJlYWQtc2FmZSBpbmNyZW1lbnQKICAgICAgICAKICAgICAgICBub3RpZnkoKTsKICAgIH0KfQpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCUNvdW50ZXIgYz0gbmV3IENvdW50ZXIoKTsKCQlUaHJlYWQgdDEgPSBuZXcgVGhyZWFkKG5ldyBSdW5uYWJsZSgpewoJCQlAT3ZlcnJpZGUKCQkJcHVibGljIHZvaWQgcnVuKCl7CgkJCQlmb3IoaW50IGk9MDtpPDY7aSsrKXsKCQkJCQljLnByaW50RXZlbigpOwoJCQkJfQoJCQl9CgkJfQoJCQkpOwoJCVRocmVhZCB0MiA9IG5ldyBUaHJlYWQobmV3IFJ1bm5hYmxlKCl7CgkJCUBPdmVycmlkZQoJCQlwdWJsaWMgdm9pZCBydW4oKXsKCQkJCWZvcihpbnQgaT0wO2k8NTtpKyspewoJCQkJCWMucHJpbnRPZGQoKTsKCQkJCX0KCQkJfQoJCX0KCQkJKTsKCQl0MS5zdGFydCgpOwoJCXQyLnN0YXJ0KCk7CgkJCgkJdDEuam9pbigpOwoJCXQyLmpvaW4oKTsKCX0KfQ==