Submission #131727

#TimeUsernameProblemLanguageResultExecution timeMemory
131727Osama_AlkhodairyBroken Device (JOI17_broken_device)C++17
100 / 100
57 ms3320 KiB
#include <bits/stdc++.h> //~ #include "grader.cpp" //~ #include "Bruno.cpp" #include "Annalib.h" using namespace std; void Anna( int N, long long X, int K, int P[] ){ srand(123321); vector <int> all; for(int i = 0 ; i < N ; i++){ all.push_back(i); } random_shuffle(all.begin(), all.end()); vector <int> broken(N); for(int i = 0 ; i < K ; i++){ broken[P[i]] = 1; } vector <int> send(N); for(int i = 0 ; i < N ; i += 2){ int cur = X % 3; if(broken[all[i]] && broken[all[i + 1]]) continue; if(broken[all[i]] && (cur == 1 || cur == 2)) continue; if(broken[all[i + 1]] && (cur == 0 || cur == 2)) continue; X /= 3; if(cur == 0) send[all[i + 1]] = 1; else if(cur == 1) send[all[i]] = 1; else send[all[i]] = send[all[i + 1]] = 1; } for(int i = 0 ; i < N ; i++){ Set(i, send[i]); } }
#include <bits/stdc++.h> #include "Brunolib.h" using namespace std; #define ll long long long long Bruno( int N, int A[] ){ srand(123321); vector <int> all; for(int i = 0 ; i < N ; i++){ all.push_back(i); } random_shuffle(all.begin(), all.end()); vector <int> r; for(int i = 0 ; i < N ; i += 2){ if(A[all[i]] == 0 && A[all[i + 1]] == 1) r.push_back(0); else if(A[all[i]] == 1 && A[all[i + 1]] == 0) r.push_back(1); else if(A[all[i]] == 1 && A[all[i + 1]] == 1) r.push_back(2); } reverse(r.begin(), r.end()); ll ret = 0; for(auto &i : r) ret = ret * 3 + i; return ret; }
#Verdict Execution timeMemoryGrader output
Fetching results...