Submission #101876

#TimeUsernameProblemLanguageResultExecution timeMemory
101876hugo_pmBroken Device (JOI17_broken_device)C++17
0 / 100
63 ms3464 KiB
#include "Annalib.h" typedef long long llg; const int borne = 155; int lenSeq, nbCas; bool bloque[borne]; int ret[borne]; int k[borne] {0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0}; long long nombre; void solve() { ret[0] = 1; int lst = 0; int i = 1; for (int b = 59; b >= 0; --b) { int c = 0; if (nombre & (1LL << (long long)(b))) c = 1; while (k[i - lst] != c || bloque[i]) ++i; if (i+1 >= lenSeq) return; ret[i] = 1; lst = i; i++; } } void Anna( int N, long long X, int K, int P[] ){ lenSeq = N; nombre = X; for (int i = 0; i < N; ++i) { bloque[i] = false; ret[i] = 0; } for (int i = 0; i < K; ++i) bloque[P[i]] = true; solve(); for (int i = 0; i < N; ++i) Set(i, ret[i]); return; }
#include "Brunolib.h" int k2[155] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0 }; long long Bruno( int N, int A[] ){ long long X = 0; int lst = 0, i = 1; for (int b = 59; b >= 0; --b) { while (A[i] == 0) ++i; if (k2[i - lst] == 1) X += 1LL << (long long)(b); lst = i; ++i; } return X; }
#Verdict Execution timeMemoryGrader output
Fetching results...