# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1016029 | 2024-07-07T10:03:12 Z | amine_aroua | Magic Show (APIO24_show) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "Alice.h" using namespace std; // you may define some global variables, but it does not work if you try to transfer any information from function Alice() to function Bob() through these variables. // you had better not use the same global variables in function Alice() and in function Bob(). const int N = 4976; const int CNT = (N - 1)/25; vector<int> bits[25]; std::vector<std::pair<int,int>> Alice(){ mt19937 rng(1313); vector<int> perm; for(int i = 2 ; i <= N ; i++) perm.push_back(i); shuffle(perm.begin() , perm.end() , rng); for(int i = 0 ; i < 25 ; i++) { for(int j = i * CNT ; j < (i + 1) * CNT ; j++) { bits[i].push_back(perm[j]); } } long long X = setN(N); vector<pair<int ,int>> vp; int b = 0; for(int i = 0 ; i < 25 ; i++) { if((1<<i) & X) { b = i; for(auto j : bits[i]) vp.push_back({1 , j}); } } for(int i =0 ; i < 25 ; i++) { if((1<<i) & X) continue; for(auto j : bits[i]) { vp.push_back({bits[b].back() , j}); } } return vp; } //int main() //{ // Alice(); //}