AT_arc094_c 题解

· · 题解

我们可以把一个数据分为 3 种情况。

$\bullet$ $a_i<b_i$ 时,因为为了增加操作次数,第一个人一定会让 $a_i$ 变成 $0$,所以第二个人肯定也会让 $b_i$ 也变为 $0$,因此用了 $b_i$ 步。 $\bullet$ $a_i>b_i$ 时,因为第一个人肯定无法将 $a_i$ 变为 $0$。所以会用 $a_i-b_i$ 步。 于是可以看出答案就是每个 $b_i$ 相加的总和减去某一满足 $a_i>b_i$ 的 $b_i$ 的最大值。 代码: ```cpp #include<bits/stdc++.h> using namespace std; long long n,a[114514],b[114514],s,m; int main() { cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]>>b[i]; s+=a[i]; } for(int i=1;i<=n;i++) { if(b[i]<a[i]) m=max(m,s-b[i]); } cout<<m<<endl; return 0; } ```