#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;
}
pair<vector<int>, vector<int>> Anna(unsigned long long A){
mt19937 rng(69420);
int cnt=(M-1)/128;
vector<int> v;
v.push_back(1);
for (int i=0; i<cnt; ++i){
vector<int> ord(64); iota(ord.begin(), ord.end(), 0);
shuffle(ord.begin(), ord.end(), rng);
for (int j:ord){
if (A>>j&1) v.push_back(0);
v.push_back(1);
}
}
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;
long long Bruno(vector<int> v){
mt19937 rng(69420);
unsigned long long ans=ULONG_MAX;
int cnt=(M-1)/128;
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<cnt; ++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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |