Submission #1231983

#TimeUsernameProblemLanguageResultExecution timeMemory
1231983RakhimovAmirPrisoner Challenge (IOI22_prison)C++20
0 / 100
0 ms320 KiB
#include "prison.h" #include <bits/stdc++.h> using namespace std; vector<vector<int>> devise_strategy(int N) { vector<vector<int>> v; int cnt = 1, nw = 0; vector<pair<int, int>> num; vector<vector<int>> put; vector<int> which; which.push_back(0); num.push_back({0, 0}); put.resize(9); for (int i = 8; i >= 0; i--) { num.push_back({i, 0}); put[i].push_back(num.size() - 1); num.push_back({i, 1}); put[i].push_back(num.size() - 1); which.push_back(nw); which.push_back(nw); nw ^= 1; } v.resize(num.size()); v[0].push_back(0); for (int i = 1; i <= N; i++) { v[0].push_back(((i & (1 << 8)) > 0)); } for (int i = 1; i < num.size(); i++) { int get = num[i].second; // cout << "kers " << num[i].first << " " << num[i].second << "\n"; v[i].push_back(which[i] ^ 1); for (int j = 1; j <= N; j++) { int bit = ((j & (1 << i)) > 0); if (bit < get) { v[i].push_back(-((which[i]) + 1)); } else if (bit > get) { v[i].push_back(-((which[i] ^ 1) + 1)); } else { v[i].push_back(put[(num[i].first - 1)][((1 << (num[i].first - 1)) > 0)]); } } } return v; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...