柿子饼同学 发表于 2022-7-7 10:02:33

转移泥土

代码如下, 不理解的地方在注释里, 题目在下面, 谢谢~#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int A;
int main(){
    int n, i, a, b, m;
    cin >> n;
    for(i = 1; i <= n; i++){
      cin >> a >> b;
      A = A + a - b; // 前缀和数组, 看缺了多少, 就是要向后移动的值
    }
    sort(A+1, A+n+1);
    int mid = (n+1)/2;
    m = A;
    long long ans = 0; // 取一个中间的值
    for(i = 1; i <= n; i++)ans += abs(m-A); // 这里不懂为什么都用中间的减去每个花盆
    cout << ans;
    return 0;
}
输入:4
7 1
3 4
9 2
1 13
输出:13

柿子饼同学 发表于 2022-7-7 21:29:04

{:10_266:}
页: [1]
查看完整版本: 转移泥土