Submission #952483

# Submission time Handle Problem Language Result Execution time Memory
952483 2024-03-24T05:44:43 Z kilkuwu Cluedo (IOI10_cluedo) C++17
100 / 100
6 ms 344 KB
#ifndef LOCAL
#include "grader.h"
#include "cluedo.h"
#else
int Theory(int M, int L, int W);
void Solve();
#endif

#include <bits/stdc++.h>

#ifdef LOCAL
#include "template\debug.hpp"
#else
#define dbg(...) ;
#define timer(...) ;
#endif

void Solve() {
  std::vector<int> murderers(6), locations(10), weapons(6);
  for (int i = 0; i < 6; i++) {
    murderers[i] = weapons[i] = i + 1;
  }
  for (int i = 0; i < 10; i++) {
    locations[i] = i + 1;
  }

  while (true) {
    int res = Theory(murderers.back(), locations.back(), weapons.back());
    if (res == 0) return;
    if (res == 1) {
      murderers.pop_back();
    } else if (res == 2) {
      locations.pop_back();
    } else {
      weapons.pop_back();
    }
  }
}


#ifdef LOCAL
#include <stdio.h>
#include <stdlib.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;
}

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;
}
#endif
# Verdict Execution time Memory Grader output
1 Correct 4 ms 344 KB Output is correct
2 Correct 5 ms 344 KB Output is correct
3 Correct 5 ms 344 KB Output is correct
4 Correct 5 ms 344 KB Output is correct
5 Correct 5 ms 344 KB Output is correct
6 Correct 5 ms 344 KB Output is correct
7 Correct 4 ms 344 KB Output is correct
8 Correct 4 ms 344 KB Output is correct
9 Correct 5 ms 344 KB Output is correct
10 Correct 5 ms 344 KB Output is correct
11 Correct 4 ms 344 KB Output is correct
12 Correct 4 ms 344 KB Output is correct
13 Correct 5 ms 344 KB Output is correct
14 Correct 4 ms 344 KB Output is correct
15 Correct 4 ms 344 KB Output is correct
16 Correct 4 ms 344 KB Output is correct
17 Correct 5 ms 344 KB Output is correct
18 Correct 5 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 344 KB Output is correct
2 Correct 4 ms 344 KB Output is correct
3 Correct 4 ms 344 KB Output is correct
4 Correct 4 ms 344 KB Output is correct
5 Correct 4 ms 344 KB Output is correct
6 Correct 5 ms 344 KB Output is correct
7 Correct 6 ms 344 KB Output is correct
8 Correct 5 ms 344 KB Output is correct
9 Correct 4 ms 344 KB Output is correct
10 Correct 4 ms 344 KB Output is correct
11 Correct 5 ms 344 KB Output is correct
12 Correct 4 ms 344 KB Output is correct
13 Correct 4 ms 344 KB Output is correct
14 Correct 4 ms 344 KB Output is correct
15 Correct 5 ms 344 KB Output is correct
16 Correct 5 ms 344 KB Output is correct
17 Correct 4 ms 344 KB Output is correct
18 Correct 5 ms 344 KB Output is correct