Official
A - Overall Winner Editorial by yuto1115
解説AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
まず for 文を用いて高橋くんと青木くんが勝った試合の数をそれぞれ数えます(片方だけ数えて、それを \(N\) から引くことでもう一方を求めても良いです)。勝った試合の数が異なる場合は、答えが分かるのでそれを出力します。勝った試合の数が同じである場合は、「先にその勝ち数に達した者」を判定する必要がありますが、これは for 文を用いて実装できる他、「\(N\) 試合目の勝者がどちらであるか」を見ることによっても判定できます。
具体的な実装方法は以下の実装例 (C++, Python) をご参照ください。 多くのプログラミング言語では配列の添字が \(0\) から始まることに注意してください。
C++
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
string s;
cin >> n >> s;
int t = 0, a = 0;
for (int i = 0; i < n; i++) {
if (s[i] == 'T') ++t;
else ++a;
}
if (t > a) cout << 'T' << endl;
else if (t < a) cout << 'A' << endl;
else cout << char('T' + 'A' - s.back()) << endl;
}
注:最後の
char('T' + 'A' - s.back())
の部分は s.back()
が ’T’
なら ‘A’
を、‘A’
なら ’T’
の値を取ります。
Python
n = int(input())
s = input()
t = 0
a = 0
for i in range(0, n):
if s[i] == 'T':
t += 1
else:
a += 1
if t > a:
print('T')
elif t < a:
print('A')
elif s[-1] == 'A':
print('T')
else:
print('A')
posted:
last update: