This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<vector<int> > devise_strategy(int N){
int x = 13;
//cout<<"Straszny amongier\n";
vector<vector<int> > tab(2*x+1);
tab[0].resize(N+1);
tab[0][0] = 0;
for (int j = 1; j <= N; j++){
if (j&(1<<x)) tab[0][j] = 2*x;
tab[0][j] = x;
//cout<<0<<" "<<j<<" # "<<tab[0][j]<<"\n";
}
for (int i = 1; i <= 2*x; i++){
tab[i].resize(N+1);
int ktorybit = (i-1)%x;
bool kolorbitu = (i-1)/x;
if (ktorybit%2) tab[i][0] = 1;
else tab[i][0] = 0;
//cout<<i<<" "<<0<<" # "<<tab[i][0]<<"\n";
//cout<<"### "<<ktorybit<<" "<<kolorbitu<<"\n";
for (int j = 1; j <= N; j++){
if (kolorbitu != bool(j&(1<<ktorybit))){
if (kolorbitu){
if (tab[i][0] == 0) tab[i][j] = -1;
else tab[i][j] = -2;
}else{
if (tab[i][0] == 0) tab[i][j] = -2;
else tab[i][j] = -1;
}
}else{
if (ktorybit == 0) tab[i][j] = -1;
else tab[i][j] = 1+ktorybit-1+12*bool(j&(1<<(ktorybit-1)));
}
// cout<<i<<" "<<j<<" # "<<tab[i][j]<<"\n";
}
//exit(0);
}
return tab;
}
/*int main(){
int N,A,B;
cin>>N>>A>>B;
vector<vector<int> > strategia = devise_strategy(N);
int tablica = 0;
while (1){
int ruch = strategia[tablica][0];
int val = 0;
if (ruch == 0) val = A;
else val = B;
int ruch2 = strategia[tablica][val];
// cout<<tablica<<" "<<ruch<<" "<<val<<" # "<<strategia[tablica][val]<<"\n";
tablica = strategia[tablica][val];
//if (ruch2 < 0) exit(0);
}
}*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |