Submission #100041

#TimeUsernameProblemLanguageResultExecution timeMemory
100041dantoh000Broken Device (JOI17_broken_device)C++14
41 / 100
56 ms3328 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; void Anna( int N, long long X, int K, int P[] ){ bool isbroken[N]; memset(isbroken,0,sizeof(isbroken)); for (int i = 0; i < K; i++){ isbroken[P[i]] = true; } int s = 0, e = N-1; while (X && s < e){ if (isbroken[s] && isbroken[e] || (X%2 == 1 && (isbroken[s]||isbroken[e]))){ Set(s,0); Set(e,0); } else{ //printf("%d",X%2); if (X % 2 == 1){ Set(s,1); Set(e,1); } else{ if (isbroken[s] || isbroken[e]){ Set(s,1); Set(e,1); } else{ Set(s,1); Set(e,0); } } X /= 2; } s++; e--; } for (int i = s; i <= e; i++){ Set(i,0); } //printf("\n"); }
#include "Brunolib.h" #include <bits/stdc++.h> using namespace std; long long Bruno( int N, int A[] ){ long long ans = 0ll; int s = 0, e = N-1; int num = 0; stack<bool> st; while (s<e && num <= 60){ if (A[s] || A[e]){ num++; //printf("%d",1-(A[s]^A[e])); st.push(1-(A[s]^A[e])); } s++; e--; } //printf("\n"); while (st.size()){ //printf("%d",st.top()); ans*=2; ans+=st.top(); st.pop(); } //printf("\n%lld\n",ans); return ans; }

Compilation message (stderr)

Anna.cpp: In function 'void Anna(int, long long int, int, int*)':
Anna.cpp:11:25: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
         if (isbroken[s] && isbroken[e] || (X%2 == 1 && (isbroken[s]||isbroken[e]))){
             ~~~~~~~~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...