站外题(核桃勿喷)
  • 板块题目总版
  • 楼主zhangjiaan
  • 当前回复24
  • 已保存回复24
  • 发布时间2024/9/12 18:16
  • 上次更新2024/9/12 20:04:55
查看原帖
站外题(核桃勿喷)
1073741
zhangjiaan楼主2024/9/12 18:16
#include<bits/stdc++.h>
using namespace std;
struct qwq{
	double l,r;
}qs[15005];
bool pd(double a,double b){
	return a<b||fabs(a-b)<0.0001;
}
int main(){
	int t;
	int n;
	double l,w;
	cin>>t;
	while(t--){
		cin>>n>>l>>w;
		int k=1;
		for(int i=0;i<n;i++){
			double a,r;
			cin>>a>>r;
			if(r*2>w){
				int tr=sqrt(r*r-w*w/4);
				qs[k++]={a-tr,a+tr};
			}
		}
		int ans=0;
		bool f=1;
		double x=0,cur=0;
		for(int i=1;i<=k;i++){
			if(qs[i].l<=cur){
				x=(pd(x,qs[i].r)?qs[i].r:x);
			}else{
				if(pd(qs[i].l,x)){
					ans++;
					cur=x;
					x=(pd(x,qs[i].r)?qs[i].r:x);
				}else{
					f=0;
				}
			}
		}
		if(!f){
			cout<<-1<<endl;
		}else{
			cout<<ans<<endl;
		}
	}
	return 0;
}

样例过不去

2024/9/12 18:16
加载中...