# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
207623 | autumn_eel | Broken Device (JOI17_broken_device) | C++14 | 1478 ms | 3568 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "Annalib.h"
#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
using namespace std;
typedef long long ll;
bool b[160],d[160];
bool used[160];
void Anna(int N,ll X,int K,int P[]){
static mt19937 mt(314159);
uniform_int_distribution<>dist(0,N-1);
memset(b,0,sizeof(b));
memset(d,0,sizeof(d));
memset(used,0,sizeof(used));
rep(i,K){
b[P[i]]=1;
}
rep(loop,N/2){
int i,j;
do{
i=dist(mt);
j=dist(mt);
}while(i==j||used[i]||used[j]);
used[i]=used[j]=true;
int e=X%3;
if((e==0&&!b[j])||(e==1&&!b[i])||(e==2&&!b[i]&&!b[j])){
if(e==0)d[i]=0,d[j]=1;
if(e==1)d[i]=1,d[j]=0;
if(e==2)d[i]=1,d[j]=1;
X/=3;
}
}
rep(i,N)Set(i,d[i]);
}
#include "Brunolib.h"
#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
using namespace std;
typedef long long ll;
ll Bruno(int N,int A[]){
static mt19937 mt(314159);
uniform_int_distribution<>dist(0,N-1);
bool used[160]{};
ll ans=0,x=1;
rep(loop,N/2){
int i,j;
do{
i=dist(mt);
j=dist(mt);
}while(i==j||used[i]||used[j]);
used[i]=used[j]=true;
if(A[i]||A[j]){
ans+=(A[i]*2+A[j]-1)*x;
x*=3;
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |