제출 #556423

#제출 시각아이디문제언어결과실행 시간메모리
556423blueBroken Device (JOI17_broken_device)C++17
41 / 100
40 ms2444 KiB
#include "Annalib.h" #include <vector> #include <iostream> using namespace std; namespace { using vi = vector<int>; using ll = long long; } void Anna( int N, long long X, int K, int P[] ){ vi bit(60); // cerr << "X = " << X << '\n'; for(int i = 0; i < 60; i++) { bit[i] = X%2; X /= 2; } // for(int z = 0; z < 60; z++) // cerr << bit[z] << ' '; // cerr << "\n"; vi bad(N, 0); for(int i = 0; i < K; i++) bad[P[i]] = 1; int cb = 0; vi encoded(N, 0); // for(int i = 0; i < N; i++) // cerr << bad[i]; // cerr << "\n"; for(int i = 0; i+1 < N && cb < 60; i++) { if(!bad[i] && !bad[i+1]) { // cerr << i << " : " << cb << '\n'; encoded[i] = 1; encoded[i+1] = bit[cb]; cb++; i++; } } // for(int i = 0; i < N; i++) // cerr << encoded[i]; // cerr << "\n"; for(int i = 0; i < N; i++) Set(i, encoded[i]); }
#include "Brunolib.h" #include <vector> using namespace std; namespace { using ll = long long; using vi = vector<int>; } long long Bruno( int N, int A[] ) { ll wt = 1; ll ans = 0; for(int i = 0; i+1 < N; i++) { if(A[i] == 1) { ans += wt*A[i+1]; wt = wt+wt; i++; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...