Submission #1078517

#TimeUsernameProblemLanguageResultExecution timeMemory
1078517oscar1fBroken Device (JOI17_broken_device)C++17
85 / 100
34 ms3040 KiB
#include<bits/stdc++.h> #include "Annalib.h" using namespace std; using ll=long long; static const ll TAILLE_MAX=150+5,NB_HASARD=(ll)(1000*1000*1000+9)*(ll)(1000*1000*1000+7); static bool estCache[TAILLE_MAX]; static ll nbVal,numBloc,pos; static vector<ll> ans,listeTrois; static void envoi(vector<ll> v) { for (int i=0;i<nbVal;i++) { Set(i,v[i]); } } static void ajout() { if ((NB_HASARD/numBloc)%2==0) { ans.push_back((listeTrois.back()+1)/2); ans.push_back((listeTrois.back()+1)%2); } else { ans.push_back((3-listeTrois.back())/2); ans.push_back((3-listeTrois.back())%2); } numBloc++; listeTrois.pop_back(); pos+=2; } static void passe() { ans.push_back(0); ans.push_back(0); pos+=2; } void Anna(int N,ll X,int K,int P[]) { nbVal=N; ll obj=X; ll nbCache=K; for (ll i=0;i<nbVal;i++) { estCache[i]=false; } for (ll i=0;i<nbCache;i++) { estCache[P[i]]=true; } listeTrois.clear(); while (obj>0) { listeTrois.push_back(obj%3); obj/=3; } ans.clear(); pos=0; numBloc=1; while (pos<nbVal) { if (!listeTrois.empty() and !estCache[pos] and !estCache[pos+1]) { ajout(); } else if (!listeTrois.empty()) { if ((NB_HASARD/numBloc)%2==0) { if (!estCache[pos] and listeTrois.back()==1) { ajout(); } else if (!estCache[pos+1] and listeTrois.back()==0) { ajout(); } else { passe(); } } else { if (!estCache[pos] and listeTrois.back()==1) { ajout(); } else if (!estCache[pos+1] and listeTrois.back()==2) { ajout(); } else { passe(); } } } else { passe(); } } envoi(ans); //cout<<endl; }
#include<bits/stdc++.h> #include "Brunolib.h" using namespace std; using ll=long long; static const ll NB_HASARD=(ll)(1000*1000*1000+9)*(ll)(1000*1000*1000+7); ll Bruno(int N,int A[]) { ll nbVal=N,rep=0,suiv,numBloc=1; vector<ll> recu; for (int i=0;i<nbVal;i+=2) { suiv=2*A[i]+A[i+1]; if (suiv>0) { rep*=3; if ((NB_HASARD/numBloc)%2==0) { rep+=suiv-1; } else { rep+=3-suiv; } numBloc++; } } return rep; }
#Verdict Execution timeMemoryGrader output
Fetching results...