Untitled
ArySeh
plain_text
a year ago
2.9 kB
13
Indexable
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define all(v) v.begin(),v.end()
#define cin(v,n) for(int i=0;i<n;i++) cin>>v[i];
#define cout(v) for(auto &i : v) cout<<i<<' '; cout<<endl;
#define fast ios::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);
vector<pair<int,int>> vp4={{0,1},{1,0},{0,-1},{-1,0}};
vector<pair<int,int>> vp8={{0,1},{1,0},{0,-1},{-1,0},{1,1},{1,-1},{-1,1},{-1,-1}};
const int mod=1000000007;
const int mod1=998244353;
const int N=2e5+10;
const int INF=1e15+10;
map<vector<pair<int,int>>, int> pre;
int recur(vector<pair<int,int>> v){
int ans=-1;
for(int i=0; i<v.size(); i++){
for(int j=i+1; j<v.size(); j++){
vector<pair<int,int>> temp;
if(v[i].ff==v[j].ff){
for(int k=0; k<v.size(); k++){
if(k==i){
temp.pb(mp(v[i].ff, v[i].ss+v[j].ss));
}
else if(k!=j) temp.pb(v[k]);
}
sort(all(temp));
if(pre[temp]==0){
pre[temp]=recur(temp);
}
if(pre[temp]==-1) ans=1;
for(int i=0; i<temp.size(); i++) cout<<temp[i].ff<<" "<<temp[i].ss<<endl;
cout<<pre[temp]<<endl<<endl;
}
temp.clear();
if(v[i].ss==v[j].ss){
for(int k=0; k<v.size(); k++){
if(k==i){
temp.pb(mp(v[i].ff, v[i].ss+v[j].ss));
}
else if(k!=j) temp.pb(v[k]);
}
sort(all(temp));
if(!pre[temp]){
pre[temp]=recur(temp);
}
if(pre[temp]==-1) ans=1;
temp.clear();
for(int k=0; k<v.size(); k++){
if(k==i){
temp.pb(mp(v[j].ff, v[i].ss+v[j].ss));
}
else if(k!=j) temp.pb(v[k]);
}
sort(all(temp));
if(!pre[temp]){
pre[temp]=recur(temp);
}
if(pre[temp]==-1) ans=1;
}
}
}
return ans;
}
void solve(){
int n,m;cin>>n>>m; // n: colors, m: count of each color
vector<pair<int,int>> stacks;
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
stacks.pb(mp(i,1));
}
}
// for(int i=0; i<n*m; i++) cout<<stacks[i].ff<<" "<<stacks[i].ss<<endl;
if(recur(stacks)==1) cout<<"player1";
else cout<<"player 2";
}
signed main(){
fast
int tc=1;
// cin>>tc;
while(tc--) solve();
}Editor is loading...
Leave a Comment