제출 #109672

#제출 시각아이디문제언어결과실행 시간메모리
109672popovicirobertBroken Device (JOI17_broken_device)C++14
0 / 100
89 ms3416 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; void Anna( int N, long long X, int K, int P[] ){ vector <int> arr(N); int i; for(i = 0; i < K; i++) { arr[P[i]] = 1; } vector <int> sol(N, 0); for(int i = 0; i < N; i += 3) { int a = arr[i], b = arr[i + 1], c = arr[i + 2]; if(a + b + c > 1) { continue; } if(a + b + c == 0) { if((X & 3) == 0) { sol[i] = 1; } else if((X & 3) == 2) { sol[i] = sol[i + 2] = 1; } else if((X & 3) == 1) { sol[i + 1] = sol[i + 2] = 1; } else if((X & 3) == 3) { sol[i] = sol[i + 1] = sol[i + 2] = 1; } X >>= 2; } else { if(b == 0) { if(X & 1) { if(c == 0) { sol[i + 2] = 1; } else { sol[i] = sol[i + 1] = 1; } } else { sol[i + 1] = 1; } X >>= 1; } else { if((X & 3) == 0) { sol[i] = 1; } else if((X & 3) == 2) { sol[i] = sol[i + 2] = 1; } else if((X & 3) == 1) { sol[i + 1] = sol[i + 2] = 1; } else if((X & 3) == 3) { sol[i] = sol[i + 1] = sol[i + 2] = 1; } X >>= 2; } } } for(i = 0; i < N; i++) { Set(i, sol[i]); } }
#include "Brunolib.h" #include <bits/stdc++.h> #define ll long long using namespace std; long long Bruno( int N, int A[] ){ ll ans = 0, pw = 1; for(int i = 0; i < N; i += 3) { int val = A[i] * 4 + A[i + 1] * 2 + A[i + 2]; if(val == 0) { continue; } if(val == 2) { pw *= 2; continue; } if(val == 1 || val == 6) { ans += pw; pw *= 2; continue; } if(val == 3) { ans += pw; } if(val == 4) { ans += 0; } if(val == 5) { ans += pw * 2; } if(val == 7) { ans += 3 * pw; } pw *= 4; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...