Wa on #8
查看原帖
Wa on #8
750803
_Revenge_楼主2023/4/2 13:01

https://codeforces.com/contest/1810/submission/200328316

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef double db;

const int N=1e5+50;
const int M=1e5+50;
const int Mod=1e9+7;

#define int long long

inline int read(){
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9'){
        x=(x<<1)+(x<<3)+(ch^48);
        ch=getchar();
    }
    return x*f;
}

int t,q;

signed main()
{
	t=read();
	while(t--){
		q=read();
		int l=-1ll,r=-1ll;
		while(q--){
			int opt=read();
			if(opt==1ll){
				int a=read(),b=read(),n=read();
				int lh=max(n-2ll,0ll)*(a-b)+a+1ll,rh=(n-1ll)*(a-b)+a;
				if(lh>rh) swap(lh,rh);
				if(n==1ll) lh=1ll,rh=a;
				if(l==-1ll&&r==-1ll){
					l=lh,r=rh;
				}else{
					if(l>rh||r<lh){
						printf("0 ");
						continue;
					}
					if(l<=lh&&r>=rh){
						l=lh,r=rh;
					}else
					if(lh<=l&&rh>=r){
						l=l,r=r;
					}else
					if(l<=lh&&r<=rh){
						l=lh,r=r;
					}else
					if(lh<=l&&rh<=r){
						l=l,r=rh;
					}
				}
				printf("1 ");
			}else{
				int a=read(),b=read();
				if(l==-1ll&&r==-1ll){
					printf("-1 ");
				}else{
					int nl=ceil((l-a)*1.0/(a-b))+1ll;	
					int nr=ceil((r-a)*1.0/(a-b))+1ll;
					if(a>=l) nl=1ll;
					if(a>=r) nr=1ll;
					if(nl!=nr){
						printf("-1 ");
					}else{
						printf("%lld ",nl);
					}
				}
			}
		}
		puts("");
	}
	return 0;
}

2023/4/2 13:01
加载中...