Submission #999085

#TimeUsernameProblemLanguageResultExecution timeMemory
999085AdamGSBroken Device (JOI17_broken_device)C++17
59 / 100
33 ms2648 KiB
#include "Annalib.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define st first
#define nd second
#define pb push_back
#define all(a) a.begin(), a.end()
void Anna(int n, ll x, int k, int P[]) {
  mt19937 rng(2137);
  vector<int>S(n);
  rep(i, n) S[i]=i;
  rep(i, n) swap(S[i], S[rng()%(i+1)]);
  vector<int>czy(n), T(n);
  rep(i, k) czy[P[i]]=1;
  ll akt=0;
  rep(i, 60) {
    ll a=0;
    if(x&(1ll<<(ll)i)) a=1;
    while(akt<n && (akt%2!=a || czy[S[akt]])) ++akt;
    if(akt==n) break;
    T[S[akt]]=1;
    ++akt;
  }
  rep(i, n) Set(i, T[i]);
}
#include "Brunolib.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define st first
#define nd second
#define pb push_back
#define all(a) a.begin(), a.end()
ll Bruno(int n, int A[]) {
  mt19937 rng(2137);
  vector<int>S(n);
  rep(i, n) S[i]=i;
  rep(i, n) swap(S[i], S[rng()%(i+1)]);
  ll x=0, p=0;
  rep(i, n) if(A[S[i]]) {
    if(i%2==1) x|=1ll<<(ll)p;
    ++p;
  }
  return x;
}
#Verdict Execution timeMemoryGrader output
Fetching results...