Submission #131721

#TimeUsernameProblemLanguageResultExecution timeMemory
131721Mahmoud_AdelBroken Device (JOI17_broken_device)C++14
0 / 100
62 ms3312 KiB
#include <bits/stdc++.h> #include "Annalib.h" typedef long long ll; using namespace std; int mark[151]; ll power(ll x, ll y) { if(y == 0) return 1; ll ret = 1; while(y--) ret *= x; return ret; } void Anna(int n, long long x, int k, int p[] ) { srand(3214354); vector<int> v; for(int i=0; i<150; i++) v.push_back(i); random_shuffle(v.begin(), v.end()); ll temp = x, cnt = 0; memset(mark, 0, sizeof mark); for(int i=0; i<k; i++) mark[p[i]] = 1; ll a[38]; for(ll i=37; i>=0; i--) { if(temp >= power(3, i)*2) temp -= power(3, i)*2, a[i] = 2; else if(temp >= power(3, i)) temp -= power(3, i), a[i] = 1; else a[i] = 0; } for(int i=0; i<n; i+=2) { if((mark[v[i]] && mark[v[i+1]]) || cnt > 37) Set(v[i], 0), Set(v[i+1], 0); else { if(a[cnt] == 2 && (!mark[v[i]] && !mark[v[i+1]])) Set(v[i], 1), Set(v[i+1], 1); else if(a[cnt] == 2) Set(v[i], 0), Set(v[i+1], 0); else if(a[cnt] == 1 && !mark[v[i]]) Set(v[i], 1), Set(v[i+1], 0); else if(a[cnt] == 1) Set(v[i], 0), Set(v[i+1], 0); else if(!mark[v[i+1]]) Set(v[i], 0), Set(v[i+1], 1); else Set(v[i], 0), Set(v[i+1], 0); cnt++; } } }
#include "Brunolib.h" #include <bits/stdc++.h> //~ #include "Anna.cpp" //~ #include "grader.cpp" typedef long long ll; using namespace std; ll power(ll x, ll y) { if(y == 0) return 1; ll ret = 1; while(y--) ret *= x; return ret; } long long Bruno(int n, int a[] ) { srand(3214354); vector<int> v; for(int i=0; i<150; i++) v.push_back(i); random_shuffle(v.begin(), v.end()); ll cnt = 0; ll x = 0; for(int i=0; i<n; i+=2) { if(!a[v[i]] && !a[v[i+1]]) continue; int b; if(a[v[i]] == 1 && a[v[i+1]] == 1) b = 2; else if(a[v[i]] == 1) b = 1; else b = 0; x += b*power(3, cnt++); } return x; }
#Verdict Execution timeMemoryGrader output
Fetching results...