#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define MAXN 100005
using namespace std;
struct node{
int x;
int y;
}a[MAXN];
int n,ans;
bool cmp(node a,node b){
return a.x<b.x;
}
signed main(){
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y;
}
sort(a+1,a+n+1,cmp);
a[n+1].x=a[n].x+a[n].y+1;
a[n+1].y=0;
for(int i=1;i<=n;i++){
int h=a[i].y;
int sz=h*h;
int sn=a[i+1].x-a[i].x;
if(a[i+1].x+a[i+1].y<a[i].x+a[i].y){
ans+=sz*4;
i++;
}
else if(a[i].x+a[i].y>a[i+1].x-a[i+1].y){
ans+=sz*4-(sn*sn);
}
else if(a[i].x+a[i].y<=a[i+1].x-a[i+1].y){
ans+=sz*4;
}
}
cout<<ans;
return 0;
}
样例过了,但0pts。不知为何。求教。