社区讨论

0分求调!!!

P9343一曲新词酒一杯参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lsyfw5eg
此快照首次捕获于
2024/02/23 17:18
2 年前
此快照最后确认于
2024/02/23 17:21
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,a[200005];
ll t;
struct node{
	int x;
	ll y;
}b[200005];
int main(){
	cin>>t;
	while(t--){
		memset(a,0,sizeof(a));
		cin>>n>>m;
		ll x1=1,y1,x2,y2=n,s=0,flag=0,f=0;//区间覆盖 
		for(int i=1;i<=m;i++){
			cin>>b[i].x>>b[i].y;
			if(b[i].x==2&&f==0){
				f=1;
				y1=b[i].y-1;
				x2=b[i].y+1;
			}
		}
		for(int i=1;i<=m;i++){
			if(b[i].x==1){
				a[b[i].y]++;
				s++;
			}
			else{
				if(b[i].y>(y1+1)){
					y1=b[i].y-1;
				}
				if(b[i].y<(x2-1)){
					x2=b[i].y+1;
				}
			}
			if((s==n)&&(b[i].x==1)){
				flag=1;
				cout<<i<<endl;
				break;
			}
//			cout<<x1<<" "<<y1<<" "<<x2<<" "<<y2<<endl;
			if((b[i].x==2)&&((a[b[i].y]>=1)||(b[i].y>=x1&&b[i].y<=y1)||(b[i].y>=x2&&b[i].y<=y2))){
				flag=1;
				cout<<i<<endl;
				break;
			}
		}
		if(!flag)cout<<-1<<endl;
	}
	return 0;
}
/*
1
3 2
1 1
2 2
*/
小样例都过了,绿色四个点,但显示0分,有没有大佬有耐心帮我调下,本蒟蒻心态崩了。。。

回复

0 条回复,欢迎继续交流。

正在加载回复...