# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1238082 | ema_nicole | Cluedo (IOI10_cluedo) | C++17 | 0 ms | 0 KiB |
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static int M,L,W,gotit,cnt,maxcnt;
int Theory(int m, int l, int w) {
++cnt;
if (m < 1 || m > 6 || l < 1 || l > 10 || w < 1 || w > 6) exit(92);
if (rand()%2 && m != M) return 1;
else if (rand()%2 && l != L) return 2;
else if (rand()%2 && w != W) return 3;
else if (m != M) return 1;
else if (l != L) return 2;
else if (w != W) return 3;
gotit = 1;
return 0;
}
void Solve() {
int om = 1, room = 1, weapon = 1;
while(1) {
int nr = Theory(om, room, weapon);
//cout << om << " " << room << " " << weapon << " " << nr << '\n';
if(!nr)
return;
if(nr == 1) ///om gresit
om++;
else if(nr == 2) ///camera gresita
room++;
else if(nr == 3) ///weapon gresit
weapon++;
}
}
int main(){
while (3 == scanf("%d%d%d",&M,&L,&W)) {
cnt = gotit = 0;
Solve();
if (cnt > maxcnt) maxcnt = cnt;
if (!gotit) {
printf("NO\n");
return 91;
}
}
printf("OK %d\n",maxcnt);
return 0;
}