[ARC094E] Tozan and Gezan题解

· · 题解

今天考试老师说是洛谷原题改数,我没通过头一看我做过还对,决定出篇题解撒气。

思路:数学分类讨论。

找规律可以发现结果是所有 b_i 的和减所有满足 a_i>b_i 的 b_i 的最大值。

代码实现:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n, a[100007], b[100007], sum, ans;
signed main(){
    cin >> n;
    for(int i = 1;i <= n;++i){
        cin >> a[i] >> b[i];
        sum += a[i];
    }
    for(int i = 1;i <= n;++i){
        if(b[i] < a[i]){
            ans = max(ans, sum - b[i]);
        }
    }
    cout << sum << endl;
    return 0;
}

感谢 QWQ_jyc 我提供了宝贵的思路不然我会打一个奇葩的模拟

2024-1-9:更正一个错误。