Submission #126508

#TimeUsernameProblemLanguageResultExecution timeMemory
126508briansuBroken Device (JOI17_broken_device)C++14
41 / 100
43 ms3312 KiB
#include "Annalib.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; #define REP(i, n) for(int i = 0;i < n;i ++) void Anna( int N, long long X, int K, int P[] ){ vector<ll> v(N, 1); REP(i, K)v[P[i]] = 0; ll ct = 0; ll x = X; vector<ll> d(N, 0); REP(i, N) { if(ct == 61 || i == N-1)d[i] = 0; else if(!(x & 1) && v[i])d[i] = 1, d[i + 1] = 0, i ++, ct ++, x /= 2; else if(v[i] && v[i + 1])d[i] = 1, d[i + 1] = 1, i ++, ct ++, x /= 2; else d[i] = 0; } if(ct != 61) { ct = 0, x = X; REP(i, N) { if(ct == 61 || i == N-1)d[i] = 0; else if((x & 1) && v[i])d[i] = 1, d[i + 1] = 0, i ++, ct ++, x /= 2; else if(v[i] && v[i + 1])d[i] = 1, d[i + 1] = 1, i ++, ct ++, x /= 2; else d[i] = 0; } } REP(i, N)Set(i, d[i]); }
#include "Brunolib.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; #define REP(i, n) for(int i = 0;i < n;i ++) long long Bruno( int N, int A[] ){ ll n = N; ll tt = 0, t = 1; REP(i, n)if(A[i])tt += t * A[i + 1], t *= 2, i ++; if(tt & (1LL<<60))tt ^= ((1LL<<61) - 1); return tt; }
#Verdict Execution timeMemoryGrader output
Fetching results...