Submission #1231994

#TimeUsernameProblemLanguageResultExecution timeMemory
1231994RakhimovAmirPrisoner 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); cout << "0 "; for (int i = 1; i <= N; i++) { v[0].push_back(((i & (1 << 8)) > 0) + 1); // cout << v[0].back() << " "; } cout << "\n"; 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); // cout << v[i][0] << " "; 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)]); } // cout << v[i].back() << " "; } // cout << "\n"; } return v; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...