# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1262305 | miniob | Broken Device (JOI17_broken_device) | C++20 | 50 ms | 1472 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
long long los[157];
long long bity[60];
bitset<150> dosta[60];
long long ktory[157];
bool czyb[157];
int ileju = 0;
mt19937 rng(2137);
void add(long long x)
{
bitset<150> mojamaska;
mojamaska[ileju] = 1;
ileju++;
for (int i = 59; i >= 0; i--)
{
if ((x >> i) & 1)
{
if (!bity[i])
{
bity[i] = x;
dosta[i] = mojamaska;
return;
}
x ^= bity[i];
mojamaska ^= dosta[i];
}
}
}
vector<long long> dajpod(long long x)
{
bitset<150> curmaska = 0;
for (long long i = 59; i >= 0; i--)
{
if ((x >> i) & 1)
{
if (!bity[i])
{
return {};
}
x ^= bity[i];
curmaska ^= dosta[i];
}
}
vector<long long> odp;
for (long long i = 0; i < ileju; i++)
{
if (curmaska[i] & (long long)1)
{
odp.push_back(i);
}
}
return odp;
}
long long gen6()
{
return ((long long)rng() << (long long)32) + (long long)rng();
}
void Anna( int N, long long X, int K, int P[] ){
set<long long> nie;
ileju = 0;
for(int i = 0; i < 60; i++)
{
bity[i] = false;
dosta[i] = 0;
}
for(int i = 0; i < 150; i++)
{
czyb[i] = false;
}
for(long long i = 0; i < K; i++)
{
nie.insert(P[i]);
}
for(long long i = 0; i < 150; i++)
{
los[i] = gen6() % (long long)(1100000000000000001);
if(nie.find(i) == nie.end())
{
ktory[ileju] = i;
add(los[i]);
}
}
vector<long long> git = dajpod(X);
for(auto x : git)
{
czyb[ktory[x]] = 1;
}
for(long long i = 0; i < 150; i++)
{
if(czyb[i])
{
Set(i, 1);
}
else
{
Set(i, 0);
}
}
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
long long los[157];
mt19937 rng(2137);
long long gen6()
{
return ((long long)rng() << (long long)32) + (long long)rng();
}
long long Bruno( int N, int A[] ){
mt19937_64 rng(N);
long long odp = 0;
for(int i = 0; i < 150; i++)
{
los[i] = gen6() % (long long)(1100000000000000001);
}
for(int i = 0; i < N; i++)
{
if(A[i])
{
odp ^= los[i];
}
}
return odp;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |