CF#294に参加。幸いなかなかの好調で良順位でした。
http://codeforces.com/contest/519/problem/C
問題
N人の熟練者とM人の初心者がいる。
3人チームを作る際、熟練者と初心者が1:2または2:1となるようにしたい。
最大何チーム作れるか。
解法
どちらの種類のチームを作るにしても、熟練者と初心者が1人ずつは必要。
あと1人は多い方から選べばよい。
別解としては、NとMが2倍以上離れていれば少ない方、2倍未満なら(N+M)/3と答えても良い。
ll N,M; int ma; void solve() { int i,j,k,l,r,x,y; string s; cin>>N>>M; while(N>0 && M>0) { if(N>=M) N--; else M--; N--; M--; if(N<0 || M<0) break; ma++; } cout<<ma<<endl; }
まとめ
Div2 Cにしてはだいぶ簡単?