제출 #207611

#제출 시각아이디문제언어결과실행 시간메모리
207611autumn_eelBroken Device (JOI17_broken_device)C++14
85 / 100
812 ms3312 KiB
#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[]){ memset(b,0,sizeof(b)); memset(d,0,sizeof(d)); memset(used,0,sizeof(used)); rep(i,K){ b[P[i]]=1; } mt19937 mt(3141592); rep(loop,N/2){ int i,j; do{ i=mt()%N; j=mt()%N; }while(i==j||used[i]||used[j]); used[i]=used[j]=true; if(!b[i]&&!b[j]){ int e=X%3; 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[]){ bool used[160]{}; ll ans=0,x=1; mt19937 mt(3141592); rep(loop,N/2){ int i,j; do{ i=mt()%N; j=mt()%N; }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 timeMemoryGrader output
Fetching results...