公式
D - コンテスト / Contest 解説
by
D - コンテスト / Contest 解説
by
physics0523
この問題は、 2 回の for ループで解くことができます。
- \(1\) 度目の for ループで、 \(1\) 位のチームを求める。
- \(2\) 度目の for ループで、 \(G_i\) を出力する。
\(1\) 位のチームを求める際は、暫定 \(1\) 位のチームと今着目しているチームとを条件分岐を利用して比較し、順位が上であるほうを新たに暫定 \(1\) 位のチームにするということを繰り返せば良いです。
\(G_i\) の出力の際は問題文中の式に従って計算して出力すればよいです。
実装例 (C++):
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,t;
cin >> n >> t;
int top=0;
vector<int> a(n),b(n);
for(int i=0;i<n;i++){
cin >> a[i] >> b[i];
if(a[top]<a[i] || (a[top]==a[i] && b[top]>b[i])){
top=i;
}
}
for(int i=0;i<n;i++){
cout << t*(a[top]-a[i])+(b[i]-b[top]) << "\n";
}
return 0;
}
投稿日時:
最終更新:
