Submission #1051573

#TimeUsernameProblemLanguageResultExecution timeMemory
1051573PacybwoahHow to Avoid Disqualification in 75 Easy Steps (CEOI23_avoid)C++17
0 / 100
1 ms692 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; R = 48; vector<vector<int>> asked; while(now <= R - 3){ now += 3; shuffle(vec.begin(), vec.end(), mt); vector<int> ask1, ask2, ask3; for(int i = 0; i < 333; i++) ask1.push_back(vec[i]); for(int i = 0; i < 333; i++) ask2.push_back(vec[i + 333]); for(int i = 0; i < 334; i++) ask3.push_back(vec[i + 666]); send(ask1); send(ask2); send(ask3); asked.push_back(ask1); asked.push_back(ask2); asked.push_back(ask3); } 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[0]; 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...