# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
100041 | dantoh000 | Broken Device (JOI17_broken_device) | C++14 | 56 ms | 3328 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |