Submission #1232018

#TimeUsernameProblemLanguageResultExecution timeMemory
1232018RakhimovAmir죄수들의 도전 (IOI22_prison)C++20
0 / 100
0 ms324 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, ff = num[i].first; // 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 << ff)) > 0); if (bit < get) { v[i].push_back(-((which[i]) + 1)); } else if (bit > get) { v[i].push_back(-((which[i] ^ 1) + 1)); } else { if (ff == 0) v[i].push_back(-1); else v[i].push_back(put[(ff - 1)][(((1 << (ff - 1)) & j) > 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...