Submission #954893

#TimeUsernameProblemLanguageResultExecution timeMemory
954893Saul0906Broken Device (JOI17_broken_device)C++14
85 / 100
32 ms2924 KiB
#include "Annalib.h" #include <bits/stdc++.h> #define rep(a,b,c) for(int a=b; a<c; a++) #define repa(a,b) for(auto a: b) #define repr(a,b,c) for(int a=b-1; a>c-1; a--) using namespace std; void Anna( int N, long long X, int K, int P[] ){ bool b[150]{}; rep(i,0,K) b[P[i]]=1; int d[38]{}, p=0; while(X){ d[p++]=X%3; X/=3; } p=0; for( int i = 0; i < N; i+=2 ){ if(!b[i] && !b[i+1] && p<38){ if(d[p]==0) Set(i,1), Set(i+1,1); //1,1 = 0 if(d[p]==1) Set(i,1), Set(i+1,0); //1,0 = 1 if(d[p]==2) Set(i,0), Set(i+1,1); //0,1 = 2 p++; }else Set(i,0), Set(i+1,0); } }
#include "Brunolib.h" #define rep(a,b,c) for(int a=b; a<c; a++) #define ll long long #include <bits/stdc++.h> using namespace std; ll fpow(ll x, ll y){ if(!y) return 1; if(y&1) return fpow(x,y-1)*x; ll z=fpow(x,y/2); return z*z; } long long Bruno( int N, int A[] ){ ll d[38]{}, p=0; ll X=0; rep(i,0,N){ if(A[i]==0 && A[i+1]==0){ i++; continue; } if(A[i]==1 && A[i+1]==1) d[p++]=0; if(A[i]==1 && A[i+1]==0) d[p++]=1; if(A[i]==0 && A[i+1]==1) d[p++]=2; i++; if(p==38) break; } rep(i,0,38){ X+=d[i]*fpow(3,i); } return X; }
#Verdict Execution timeMemoryGrader output
Fetching results...