Untitled
ArySeh
plain_text
2 months ago
2.9 kB
8
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