第一行输入两个正整数
,分别表示账号数量和比赛场次。
第二行输入
个整数
,表示各账号初始分数。
第三行输入
个整数
,其中第
个数表示第
场比赛结束后账号分数的增加值。
输出
行,第
行输出第
场比赛结束后,小苯的
。
5 6 1145 1500 1600 1538 1222 10 400 500 1000 2000 10000
1600 1600 1722 2500 3538 11555
共比赛了 6 场,每场结束后均输出小苯所有账号中的最高分。
初始分数最低的账号分数为 1145,第一场比赛后其分数变为,最高分依旧为 1600,故输出 1600。
第二场比赛使用当前最低分账号 1155 参赛,分数增加 400 变为 1555,最高分仍为 1600,故输出 1600。
第三场比赛使用当前最低分 1222 参赛,分数增加 500 变为 1722,此时最高分为 1722,故输出 1722。
以此类推,得到后续输出。
#include <bits/stdc++.h> using namespace std; void solve() { int n, m; cin >> n >> m; multiset<int> st; for(int i = 1, x; i <= n; i++) { cin >> x; st.emplace(x); } while(m -- ) { int x; cin >> x; int mn = *st.begin(); st.erase(st.begin()); st.emplace(mn + x); cout << *st.rbegin() << endl; } } signed main () { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); int _ = 1; while(_ -- ) { solve(); } return 0; }