Submission #1319722

#TimeUsernameProblemLanguageResultExecution timeMemory
1319722PlayVoltzBroken Device (JOI17_broken_device)C++20
41 / 100
29 ms1528 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair #define pii pair<int, int> #define fi first #define se second void Anna(int n, long long x, int k, int p[]){ vector<bool> die(n, 0), res1(n, 0), res2(n, 0); for (int i=0; i<k; ++i)die[p[i]]=1; bool first1=1, first2=1; long long b1=0, b2=0; for (int i=0; i<n/2&&b1<60; ++i){ if (die[i]&&die[i+n/2])continue; if (first1){ if (!die[i])res1[i]=1, first1=0; continue; } if (!die[i]&&!die[i+n/2]){ if ((1ll<<b1)&x)res1[i]=1; else res1[i+n/2]=1; ++b1; } else if (die[i]){ if (!((1ll<<b1)&x))res1[i+n/2]=1, ++b1; } else{ if ((1ll<<b1)&x)res1[i]=1, ++b1; } } for (int i=0; i<n/2&&b2<60; ++i){ if (die[i]&&die[i+n/2])continue; if (first2){ if (!die[i+n/2])res2[i+n/2]=1, first2=0; continue; } if (!die[i]&&!die[i+n/2]){ if ((1ll<<b2)&x)res2[i+n/2]=1; else res2[i]=1; ++b2; } else if (die[i]){ if ((1ll<<b2)&x)res2[i+n/2]=1, ++b2; } else{ if (!((1ll<<b2)&x))res2[i]=1, ++b2; } } if (b1>b2)for (int i=0; i<n; ++i)Set(i, res1[i]); else for (int i=0; i<n; ++i)Set(i, res2[i]); }
#include "Brunolib.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair #define pii pair<int, int> #define fi first #define se second long long Bruno(int n, int vect[]){ long long res=0, res2=0, b=0; bool first=1, one=1; for (int i=0; i<n/2&&b<60; ++i){ if (first){ if (vect[i])one=1, first=0; else if (vect[i+n/2])one=0, first=0; continue; } if (vect[i])res+=(1ll<<b), ++b; else if (vect[i+n/2])res2+=(1ll<<b), ++b; } if (one)return res; return res2; }
#Verdict Execution timeMemoryGrader output
Fetching results...