Submission #993966

#TimeUsernameProblemLanguageResultExecution timeMemory
993966MilosMilutinovicMagic Show (APIO24_show)C++17
100 / 100
3 ms1316 KiB
#include "Alice.h" #include <bits/stdc++.h> using namespace std; vector<pair<int, int>> Alice() { long long x = setN(5000); vector<pair<int, int>> edges; edges.emplace_back(1, 2); int t = 0; for (int i = 3; i <= 5000;) { vector<int> one, zero; for (int j = 0; j < 60; j++) { if (i + j > 5000) { continue; } int b = (i + j) % 60; if (x >> b & 1) { one.push_back(i + j); } else { zero.push_back(i + j); } } if (t == 0) { for (int i : one) { edges.emplace_back(1, i); } for (int i : zero) { edges.emplace_back(2, i); } } else { for (int i : one) { edges.emplace_back(2, i); } for (int i : zero) { edges.emplace_back(1, i); } } i += 60; t ^= 1; } return edges; }
#include <bits/stdc++.h> #include "Bob.h" using namespace std; long long Bob(vector<pair<int,int>> v) { int n = 5000; vector<vector<int>> g(n + 1); for (auto& p : v) { g[p.first].push_back(p.second); g[p.second].push_back(p.first); } long long res = 0; int t = 0; for (int i = 3; i <= 5000; ) { for (int j = 0; j < 60; j++) { if (i + j > 5000) { break; } int b = (i + j) % 60; for (int c : g[i + j]) { if (c == 1 && t == 0) { res |= (1LL << b); } if (c == 2 && t == 1) { res |= (1LL << b); } } } i += 60; t ^= 1; } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...