| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1319722 | PlayVoltz | Broken Device (JOI17_broken_device) | C++20 | 29 ms | 1528 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 time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
