Submission #1137761

#TimeUsernameProblemLanguageResultExecution timeMemory
1137761huutuanBroken Device 2 (JOI22_device2)C++20
0 / 100
487 ms23632 KiB
#include "Anna.h" #include <utility> #include <vector> #include <bits/stdc++.h> using namespace std; namespace Anna_solver{ const int M=2000; int Declare(){ return M; } mt19937 rng(1); pair<vector<int>, vector<int>> Anna(unsigned long long A){ vector<int> v; v.push_back(1); while (1){ vector<int> vv; vector<int> ord(64); iota(ord.begin(), ord.end(), 0); shuffle(ord.begin(), ord.end(), rng); for (int j:ord){ if (A>>j&1) vv.push_back(0); vv.push_back(1); } if ((int)v.size()+(int)vv.size()>M) break; v.insert(v.end(), vv.begin(), vv.end()); } return {vector<int>(v.size(), 0), v}; } } int Declare() { return Anna_solver::Declare(); } std::pair<std::vector<int>, std::vector<int> > Anna(long long A) { return Anna_solver::Anna(A); }
#include "Bruno.h" #include <utility> #include <vector> #include <bits/stdc++.h> using namespace std; namespace Bruno_solver{ const int M=2000; mt19937 rng(1); long long Bruno(vector<int> v){ unsigned long long ans=ULONG_MAX; vector<int> id, d; for (int i=0; i<(int)v.size(); ++i){ if (v[i]==1) id.push_back(i); } for (int i=0; i<(int)id.size()-1; ++i){ d.push_back(id[i+1]-id[i]-1); } for (int i=0; i<(int)d.size()/64; ++i){ vector<int> ord(64); iota(ord.begin(), ord.end(), 0); shuffle(ord.begin(), ord.end(), rng); unsigned long long a=0; for (int j=i*64; j<(i+1)*64; ++j){ if (d[j]) a|=1ull<<ord[j%64]; } ans&=a; } return ans; } } long long Bruno(std::vector<int> u) { return Bruno_solver::Bruno(u); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...