WA #8求助
查看原帖
WA #8求助
918114
haozige楼主2024/4/21 13:15

rt

#include<bits/stdc++.h>
using namespace std;
long long l=0,r=1e18;
void problem1(){
	long long a,b,n;
	cin>>a>>b>>n;
	if(n==1){
		if(1>r||(n-1)*(a-b)+a<l){
			cout<<"0"<<" ";
			return;
		}
		long long x=1;
		l=max(l,x);
		r=min(r,a);
		cout<<"1"<<" ";
		return;
	}
	if((n-2)*(a-b)+a+1>r||(n-1)*(a-b)+a<l){
		cout<<"0"<<" ";
		return;
	}
	l=max(l,(n-2)*(a-b)+a+1);
	r=min(r,(n-1)*(a-b)+a);
	cout<<"1"<<" ";
	return;
}
void problem2(){
	long long a,b;
	cin>>a>>b;
	long long dl,dr;
	if(l<=a) dl=1;
	else dl=ceil(1.0*(l-a)/(a-b))+1;
	if(r<=a) dr=1;
	else dr=ceil(1.0*(r-a)/(a-b))+1;
	if(dl==dr) cout<<dl<<" ";
	else cout<<-1<<" ";
}
void slove(){
	int n;
	cin>>n;
	l=0,r=1e18;
	for(int i=1;i<=n;i++){
		int type;
		cin>>type;
		if(type==1){
			problem1();
		}
		else{
			problem2();
		}
	}
	cout<<endl;
}
int main(){
	int t;
    cin>>t;
    for(int i=1;i<=t;i++){
    	slove();
	}
    return 0;
}
2024/4/21 13:15
加载中...