Submission #1051299

#TimeUsernameProblemLanguageResultExecution timeMemory
1051299PacybwoahHow to Avoid Disqualification in 75 Easy Steps (CEOI23_avoid)C++17
0 / 100
2 ms824 KiB
#include "avoid.h" #include <vector> #include<algorithm> #include<random> #include<chrono> #include<utility> #include<cassert> using namespace std; auto seed = chrono::high_resolution_clock::now().time_since_epoch().count(); mt19937 mt(seed); // send(), wait() std::pair<int, int> scout(int R, int H) { vector<int> vec(1000); for(int i = 0; i < 1000; i++) vec[i] = i + 1; vector<bool> poss(1001, 1); int now = 0; vector<vector<int>> asked; while(now <= R - 2){ now += 2; shuffle(vec.begin(), vec.end(), mt); vector<int> ask1, ask2; for(int i = 0; i < 500; i++) ask1.push_back(vec[i]); for(int i = 0; i < 500; i++) ask2.push_back(vec[i + 500]); send(ask1); send(ask2); asked.push_back(ask1); asked.push_back(ask2); } auto res = wait(); int sz = res.size(); for(int i = 0; i < sz; i++){ if(res[i] == 0){ for(auto &x: asked[i]) poss[x] = 0; } } pair<int, int> ans; vector<int> anss; for(int i = 1; i <= 1000; i++) if(poss[i]) anss.push_back(i); assert(anss.size() <= 2); if(anss.size() == 1) ans.first = anss[0], ans.second = anss[1]; else ans.first = anss[1], ans.second = anss[0]; return ans; } // g++ -std=c++17 -o run ceoi23_d2C_grader.cpp ceoi23_d2C.cpp -fsanitize=undefined -fsanitize=address -Wall -Wextra -Wshadow
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...