月赛E题52pts求调
查看原帖
月赛E题52pts求调
424534
封禁用户楼主2022/8/7 17:28
#include <bits/stdc++.h>

typedef long long ll;

using namespace std;

map<ll, ll> M;

ll abss(ll s)
{
	if (s >= 0)return s;
	else return -s;
}

int main()
{
    int n;
    scanf("%d", &n);

    long long sum = 0;
    while (n -- )
    {
        int x, y;
        long long z;
        scanf("%d%d%lld", &x, &y, &z);
        ll pos = x * 1e9 + y;
        sum = sum + (abss(M[pos] + z - M[pos - 1e9]) - abss(M[pos] - M[pos - 1e9]));
        sum = sum + (abss(M[pos] + z - M[pos + 1e9]) - abss(M[pos] - M[pos + 1e9]));
        sum = sum + (abss(M[pos] + z - M[pos - 1]) - abss(M[pos] - M[pos - 1]));
        sum = sum + (abss(M[pos] + z - M[pos + 1]) - abss(M[pos] - M[pos + 1]));
        M[pos] += z;
        
    }
    
	printf("%lld\n", sum);
	
    return 0;
}
2022/8/7 17:28
加载中...