Official
A - To Be Saikyo Editorial by yuto1115
解説AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
まず、\(P_2,P_3,\dots,P_N\) の最大値を求めます。これを \(M\) とおきます。このとき、人 \(1\) が最強になる条件は、\(P_1\) が \(M\) より大きくなることです。よって、答えは \(M + 1 - P_1\) と \(0\) のうち大きい方になります。単に \(M + 1 - P_1\) を出力するだけだと、入力の時点で既に人 \(1\) が最強のとき負の値を 出力してしまうので注意してください。
詳しい実装方法は下記の実装例を参考にしてください。
実装例 (C++) :
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> p(n);
for (int i = 0; i < n; i++) {
cin >> p[i];
}
int m = 0;
for (int i = 1; i < n; i++) {
m = max(m, p[i]);
}
cout << max(0, m + 1 - p[0]) << endl;
}
実装例 (Python) :
n = int(input())
p = list(map(int, input().split()))
m = 0
for i in range(1, n):
m = max(m, p[i])
print(max(0, m + 1 - p[0]))
posted:
last update: