/* 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 Ideone
{
{
// your code goes here
int stack1 = 100;
int stack2 = 100;
int gain1 = 0;
int gain2 = 0;
int cmpt = 0;
int total = 0;
int occ = 100000;
int moy = 0;
for (int c=0 ; c<occ ; c++)
{
while ((gain1 < 4000) && (gain2 < 4000))
{
// Tant que personne n'a ship 40 caves
cmpt++;
int i = rn.nextInt()%2;
if(i==0)
{
if(stack2 <= stack1) {
gain1 += stack2;
gain2 -= stack2;
stack1 += stack2;
stack2 = 100;
}
else {
gain1 += stack1;
gain2 -= stack1;
stack2 -= stack1;
stack1 = stack1 * 2;
if(stack2 < 100) stack2 = 100;
}
//System.out.println("joueur 1 gagne le flip. Stack1 = " + stack1 + " & stack2 = " + stack2 + " & gain1 = " + gain1 + " & gain2 = " + gain2);
}
else
{
if(stack1 <= stack2) {
gain2 += stack1;
gain1 -= stack1;
stack2 += stack1;
stack1 = 100;
}
else {
gain1 -= stack2;
gain2 += stack2;
stack1 -= stack2;
stack2 = stack2 * 2;
if(stack1 < 100) stack1 = 100;
}
//System.out.println("joueur 2 gagne le flip. Stack1 = " + stack1 + " & stack2 = " + stack2 + "& gain1 = " + gain1 + " & gain2 = " + gain2);
}
}
//System.out.println("Objectif atteint en " + cmpt + "mains (stack1 = " + stack1 + " et stack2 = " + stack2 + ")");
total += cmpt;
stack1 = 100;
stack2 = 100;
gain1 = 0;
gain2 = 0;
cmpt = 0;
}
moy = total / occ;
System.
out.
println("Sur " + occ
+ " occurences, le nombre de flips nécessaires fut en moyenne de " + moy
+ " pour que l'un des joueurs atteigne 40 caves"); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlpbnQgc3RhY2sxID0gMTAwOwoJCWludCBzdGFjazIgPSAxMDA7CgkJaW50IGdhaW4xID0gMDsKCQlpbnQgZ2FpbjIgPSAwOwoJCWludCBjbXB0ID0gMDsKCQlpbnQgdG90YWwgPSAwOwoJCWludCBvY2MgPSAxMDAwMDA7CgkJaW50IG1veSA9IDA7CgkJCgkJZm9yIChpbnQgYz0wIDsgYzxvY2MgOyBjKyspCgkJewoJCQl3aGlsZSAoKGdhaW4xIDwgNDAwMCkgJiYgKGdhaW4yIDwgNDAwMCkpCgkJCXsKCQkJCS8vIFRhbnQgcXVlIHBlcnNvbm5lIG4nYSBzaGlwIDQwIGNhdmVzCgkJCQljbXB0Kys7CgkJCQkKCQkJCVJhbmRvbSBybiA9IG5ldyBSYW5kb20oKTsKCQkJCWludCBpID0gcm4ubmV4dEludCgpJTI7CgkJCQlpZihpPT0wKQoJCQkJewoJCQkJCWlmKHN0YWNrMiA8PSBzdGFjazEpIHsKCQkJCQkJZ2FpbjEgKz0gc3RhY2syOwoJCQkJCQlnYWluMiAtPSBzdGFjazI7CgkJCQkJCXN0YWNrMSArPSBzdGFjazI7CgkJCQkJCXN0YWNrMiA9IDEwMDsKCQkJCQl9CgkJCQkJZWxzZSB7CgkJCQkJCWdhaW4xICs9IHN0YWNrMTsKCQkJCQkJZ2FpbjIgLT0gc3RhY2sxOwoJCQkJCQlzdGFjazIgLT0gc3RhY2sxOwoJCQkJCQlzdGFjazEgPSBzdGFjazEgKiAyOwoJCQkJCQlpZihzdGFjazIgPCAxMDApIHN0YWNrMiA9IDEwMDsKCQkJCQl9CgkJCQkJCgkJCQkJLy9TeXN0ZW0ub3V0LnByaW50bG4oImpvdWV1ciAxIGdhZ25lIGxlIGZsaXAuIFN0YWNrMSA9ICIgKyBzdGFjazEgKyAiICYgc3RhY2syID0gIiArIHN0YWNrMiArICIgJiBnYWluMSA9ICIgKyBnYWluMSArICIgJiBnYWluMiA9ICIgKyBnYWluMik7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJaWYoc3RhY2sxIDw9IHN0YWNrMikgewoJCQkJCQlnYWluMiArPSBzdGFjazE7CgkJCQkJCWdhaW4xIC09IHN0YWNrMTsKCQkJCQkJc3RhY2syICs9IHN0YWNrMTsKCQkJCQkJc3RhY2sxID0gMTAwOwoJCQkJCX0KCQkJCQllbHNlIHsKCQkJCQkJZ2FpbjEgLT0gc3RhY2syOwoJCQkJCQlnYWluMiArPSBzdGFjazI7CgkJCQkJCXN0YWNrMSAtPSBzdGFjazI7CgkJCQkJCXN0YWNrMiA9IHN0YWNrMiAqIDI7CgkJCQkJCWlmKHN0YWNrMSA8IDEwMCkgc3RhY2sxID0gMTAwOwoJCQkJCX0KCQkJCQkKCQkJCQkvL1N5c3RlbS5vdXQucHJpbnRsbigiam91ZXVyIDIgZ2FnbmUgbGUgZmxpcC4gU3RhY2sxID0gIiArIHN0YWNrMSArICIgJiBzdGFjazIgPSAiICsgc3RhY2syICsgIiYgZ2FpbjEgPSAiICsgZ2FpbjEgKyAiICYgZ2FpbjIgPSAiICsgZ2FpbjIpOwoJCQkJfQoJCQl9CgkJCS8vU3lzdGVtLm91dC5wcmludGxuKCJPYmplY3RpZiBhdHRlaW50IGVuICIgKyBjbXB0ICsgIm1haW5zIChzdGFjazEgPSAiICsgc3RhY2sxICsgIiBldCBzdGFjazIgPSAiICsgc3RhY2syICsgIikiKTsgCgkJCXRvdGFsICs9IGNtcHQ7CgkJCXN0YWNrMSA9IDEwMDsKCQkJc3RhY2syID0gMTAwOwoJCQlnYWluMSA9IDA7CgkJCWdhaW4yID0gMDsKCQkJY21wdCA9IDA7CgkJfQoJCW1veSA9IHRvdGFsIC8gb2NjOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiU3VyICIgKyBvY2MgKyAiIG9jY3VyZW5jZXMsIGxlIG5vbWJyZSBkZSBmbGlwcyBuw6ljZXNzYWlyZXMgZnV0IGVuIG1veWVubmUgZGUgIiArIG1veSArICIgcG91ciBxdWUgbCd1biBkZXMgam91ZXVycyBhdHRlaWduZSA0MCBjYXZlcyIpOyAKCX0KfQ==