Submission #390388

# Submission time Handle Problem Language Result Execution time Memory
390388 2021-04-16T00:42:19 Z arwaeystoamneg Cluedo (IOI10_cluedo) C++17
100 / 100
15 ms 332 KB
// EXPLOSION!
#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
#include<unordered_set>
#include<unordered_map>
#include<chrono>

using namespace std;
typedef pair<int, int> pii;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef long double ld;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<pair<int, int>> vpi;
typedef vector<pair<ll, ll>> vpll;

#define FOR(i,a,b) for (int i = (a); i < (b); ++i)
#define F0R(i,a) FOR(i,0,a)
#define ROF(i,a,b) for (int i = (b)-1; i >= (a); --i)
#define R0F(i,a) ROF(i,0,a)
#define trav(a,x) for (auto& a: x)

#define pb push_back
#define mp make_pair
#define rsz resize
#define sz(x) int(x.size())
#define all(x) x.begin(),x.end()
#define f first
#define s second
#define cont continue
//#define endl '\n'
//#define ednl '\n'
#define test int testc;cin>>testc;while(testc--)
#define pr(a, b) trav(x,a)cerr << x << b; cerr << endl;
#define message cout << "Hello World" << endl;
const int dx[4] = { 1,0,-1,0 }, dy[4] = { 0,1,0,-1 }; // for every grid problem!!
const ll linf = 4000000000000000000LL;
const ll inf = 1000000007;//998244353    

void pv(vi a) { trav(x, a)cout << x << " "; cout << endl; }void pv(vll a) { trav(x, a)cout << x << " "; cout << endl; }void pv(vector<vi>a) {
	F0R(i, sz(a)) { cout << i << endl; pv(a[i]); cout << endl; }
}void pv(vector<vll>a) { F0R(i, sz(a)) { cout << i << endl; pv(a[i]); }cout << endl; }void pv(vector<string>a) { trav(x, a)cout << x << endl; cout << endl; }
void setIO(string s) {
	ios_base::sync_with_stdio(0); cin.tie(0);
	if (sz(s))
	{
		freopen((s + ".in").c_str(), "r", stdin);
		if (s != "test1")
			freopen((s + ".out").c_str(), "w", stdout);
	}
}
#include "grader.h"
#include "cluedo.h"
#ifdef arwaeystoamneg
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;
}
#endif
void Solve() 
{
	int x[3] = { 1,1,1 };
	while (1)
	{
		int res = Theory(x[0], x[1], x[2]);
		if (res == 0)
		{
			return;
		}
		x[res - 1]++;
	}
}

#ifdef arwaeystoamneg
int main() 
{
	setIO("test1");
	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

Compilation message

cluedo.cpp: In function 'void setIO(std::string)':
cluedo.cpp:48:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   48 |   freopen((s + ".in").c_str(), "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cluedo.cpp:50:11: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   50 |    freopen((s + ".out").c_str(), "w", stdout);
      |    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 11 ms 200 KB Output is correct
2 Correct 10 ms 200 KB Output is correct
3 Correct 13 ms 332 KB Output is correct
4 Correct 9 ms 200 KB Output is correct
5 Correct 14 ms 200 KB Output is correct
6 Correct 11 ms 200 KB Output is correct
7 Correct 13 ms 200 KB Output is correct
8 Correct 13 ms 204 KB Output is correct
9 Correct 14 ms 204 KB Output is correct
10 Correct 8 ms 200 KB Output is correct
11 Correct 11 ms 200 KB Output is correct
12 Correct 13 ms 200 KB Output is correct
13 Correct 5 ms 200 KB Output is correct
14 Correct 9 ms 200 KB Output is correct
15 Correct 8 ms 200 KB Output is correct
16 Correct 13 ms 200 KB Output is correct
17 Correct 9 ms 200 KB Output is correct
18 Correct 11 ms 200 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 200 KB Output is correct
2 Correct 15 ms 200 KB Output is correct
3 Correct 13 ms 200 KB Output is correct
4 Correct 13 ms 200 KB Output is correct
5 Correct 9 ms 200 KB Output is correct
6 Correct 11 ms 204 KB Output is correct
7 Correct 13 ms 204 KB Output is correct
8 Correct 14 ms 200 KB Output is correct
9 Correct 10 ms 200 KB Output is correct
10 Correct 10 ms 200 KB Output is correct
11 Correct 13 ms 200 KB Output is correct
12 Correct 8 ms 200 KB Output is correct
13 Correct 13 ms 200 KB Output is correct
14 Correct 12 ms 200 KB Output is correct
15 Correct 5 ms 200 KB Output is correct
16 Correct 14 ms 200 KB Output is correct
17 Correct 13 ms 200 KB Output is correct
18 Correct 13 ms 200 KB Output is correct