Submission #131717

#TimeUsernameProblemLanguageResultExecution timeMemory
131717Osama_AlkhodairyBroken Device (JOI17_broken_device)C++17
90 / 100
59 ms3368 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; } for(int i = 0 ; i < N ; i += 2){ if(broken[all[i]] == 1) broken[all[i + 1]] = 1; if(broken[all[i + 1]] == 1) broken[all[i]] = 1; } for(int i = 0 ; i < N ; i += 2){ if(broken[all[i]]){ Set(all[i], 0); Set(all[i + 1], 0); continue; } int cur = X % 3; X /= 3; if(cur == 0){ Set(all[i], 0); Set(all[i + 1], 1); } else if(cur == 1){ Set(all[i], 1); Set(all[i + 1], 0); } else{ Set(all[i], 1); Set(all[i + 1], 1); } } }
#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...