站外题求助捏
  • 板块题目总版
  • 楼主Wildchesse
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/4/4 17:23
  • 上次更新2023/10/23 19:27:57
查看原帖
站外题求助捏
362022
Wildchesse楼主2023/4/4 17:23

https://iai.sh.cn/problem/640

#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。不知为何。求教。

2023/4/4 17:23
加载中...