#include<bits/stdc++.h> using namespace std; long long v[200005]; int main() { ios::sync_with_stdio(false); int t; cin>>t; while(t--) { int q; cin>>q; long long l=1,r=1e18; int ans=0; for(int i=1;i<=q;i++) { int id; long long a,b,n,x=0; cin>>id; if(id==1) { cin>>a>>b>>n; long long temp=(a-b)*(n-1); long long tem=(a-b)*max(x,n-2); long long l1=tem+a+1; if(n==1) l1=1; long long r1=temp+a; if(max(l,l1)<=min(r,r1)) { l=max(l,l1); r=min(r,r1); v[++ans]=1; }else { v[++ans]=0; } // cout<<l<<" "<<r<<endl; }else { cin>>a>>b; if(a>=r) { v[++ans]=1; }else if(a<l&&2*a-b>=r) { v[++ans]=2; }else { long long temp=(r-a-1)/(a-b)+2; if((temp-2)*(a-b)+a<l) { v[++ans]=temp; }else { v[++ans]=-1; } } } } for(int i=1;i<=ans;i++) { cout<<v[i]<<" "; } cout<<endl; } return 0; }
区间合并操作
最新推荐文章于 2023-11-25 08:00:00 发布