今天E题有WA最后一个点的吗,卡半小时了,求hack。
#include<bits/stdc++.h>
#define int long long
using namespace std;
void read(int &x)
{
char ch=getchar();
int r=0,w=1;
while(!isdigit(ch))w=ch=='-'?-1:1,ch=getchar();
while(isdigit(ch))r=(r<<3)+(r<<1)+(ch^48),ch=getchar();
x=r*w;
}
map<pair<int,int>,int>mp;
main()
{
int T,sum=0;
read(T);
while(T--)
{
int x,y,z;
read(x);read(y);read(z);
int now=mp[make_pair(x,y)];
sum+=z*4;
if(mp[make_pair(x+1,y)])
{
int k=mp[make_pair(x+1,y)];
if(k>now)sum-=min(k-now,z)*2;
}
if(mp[make_pair(x-1,y)]&&x>0)
{
int k=mp[make_pair(x-1,y)];
if(k>now)sum-=min(k-now,z)*2;
}
if(mp[make_pair(x,y+1)])
{
int k=mp[make_pair(x,y+1)];
if(k>now)sum-=min(k-now,z)*2;
}
if(mp[make_pair(x,y-1)]&&y>0)
{
int k=mp[make_pair(x,y-1)];
if(k>now)sum-=min(k-now,z)*2;
}
mp[make_pair(x,y)]+=z;
printf("%lld\n",sum);
}
return 0;
}