#include "prison.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<vector<int>> devise_strategy(int n) {
vector<vector<int>> ans(26,vector<int>(n+1,0));
for(ll w=0; w<=25; w++){
ll c=((w+1)/2)%2, cbit=12-(w+1)/2, lbit=cbit+1;
// cout<<w<<" "<<c<<" "<<cbit<<" "<<lbit<<" "<<(w%2)<<endl;
ans[w][0]=c;
if(w==0){
for(ll a=1; a<=n; a++){
ll ca=(a&(1ll<<cbit));
if(ca>0) ans[w][a]=1;
else ans[w][a]=2;
}
}
else if(w==23 || w==24){
for(ll a=1; a<=n; a++){
ll lb=(w%2)*(1ll<<lbit), la=(a&(1ll<<lbit)), ca=(a&(1ll<<cbit));
// cout<<w<<" "<<b<<": "<<lb<<" "<<la<<" "<<cb<<endl;
if(lb>la) ans[w][a]=-1;
else if(lb<la) ans[w][a]=-2;
else ans[w][a]=25;
}
}
else if(w==25){
for(ll b=1; b<=n; b++){
ll lb=(b&(1ll<<lbit));
if(lb>0) ans[w][b]=-1;
else ans[w][b]=-2;
}
}
else if(c==0){
for(ll a=1; a<=n; a++){
ll lb=(w%2)*(1ll<<lbit), la=(a&(1ll<<lbit)), ca=(a&(1ll<<cbit));
// cout<<w<<" "<<a<<": "<<lb<<" "<<la<<" "<<ca<<endl;
if(lb>la) ans[w][a]=-1;
else if(lb<la) ans[w][a]=-2;
else if(ca>0) ans[w][a]=2*(13-cbit)-1;
else ans[w][a]=2*(13-cbit);
}
}
else{
for(ll b=1; b<=n; b++){
ll la=(w%2)*(1ll<<lbit), lb=(b&(1ll<<lbit)), cb=(b&(1ll<<cbit));
// cout<<w<<" "<<b<<": "<<lb<<" "<<la<<" "<<cb<<endl;
if(lb>la) ans[w][b]=-1;
else if(lb<la) ans[w][b]=-2;
else if(cb>0) ans[w][b]=2*(13-cbit)-1;
else ans[w][b]=2*(13-cbit);
}
}
}
// for(ll w=0; w<=26; w++){
// for(ll x=0; x<=n; x++){
// cout<<w<<"-"<<x<<":"<<ans[w][x]<<" ";
// }
// cout<<endl;
// }
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |