![見出し画像](https://assets.st-note.com/production/uploads/images/51429872/rectangle_large_type_2_87e26ddbf082ea065b721815be4bd23e.png?width=1200)
ABC046-D 備忘録 p.49
itsukiです。
AtCoderの過去問を解いた様子です。解説記事ではありません。
考察の流れ
全部グーを出したらどれだけ負けるか考える
相手がパーを出す数を、仮に p と置く
自分がパーを出せる最大数(仮に pmax と置く)は、手数 N ÷ 2 を切り捨てた値になる
相手がパーを出すときに自分もパーを出すことで、相手がパーを出すときは極力あいこにする
それでもまだパーを出せるなら、相手がグーのときにパーを出して勝つ
pmax - p が答え
#include <stdio.h>
#include <string.h>
int main(){
int n, p=0, pmax;
char s[100001]={0};
scanf("%s",s);
n = strlen(s);
pmax = n/2;
for(int i=0; i<n; i++){
if( s[i]=='p' ){ p++; }
}
printf("%d\n",pmax-p);
return 0;
}
まとめ
・昔の水色なら解ける
・どんなに頑張っても緑色まで と思っていたので、色を気にせず積極的に過去問を解いていきたい
引き続き、のんびり精進します。
この記事が気に入ったらサポートをしてみませんか?