概要
n 匹の牛がポーカーをしている。
現在のベットでは、各プレイヤーの状態は "ALLIN", "IN", "FOLDED" のいずれかであり変更されない。
緊張感を増すため、"FOLDED" でないプレイヤーは手札を公開するかもしれない。
ただし、他のプレイヤーの選択に影響を与えない限りに於いてであり、全ての外のプレイヤーの状態が "ALLIN" か "FOLDED" のいずれかの場合に限られる。
更に、本人の状態は "ALLIN" か "IN" でなければならない。
現在のベットに於ける各プレイヤーの状態が与えられるので、このようなプレイヤーの数を求めよ。
解法
次のように場合分けされます
- "IN" がいない → "ALLIN" の数
- "IN" が一人 → 1
- それ以外 → 0
コード
#define ALL( c ) (c).begin(), (c).end() int main() { cin.tie( 0 ); ios::sync_with_stdio( false ); int n; cin >> n; string str; cin >> str; int numI = count( ALL( str ), 'I' ); if ( numI == 0 ) { cout << count( ALL( str ), 'A' ) << endl; } else { cout << ( numI == 1 ? 1 : 0 ) << endl; } return 0; }