求助!!把WA的数据下载下来在本地测是对的,但是提交就是错的……
查看原帖
求助!!把WA的数据下载下来在本地测是对的,但是提交就是错的……
545032
XY_world楼主2023/7/19 13:32

把数据下载下来之后在本地测试了几遍,答案都是对的,但是提交就显示答案是错的……

#include <bits/stdc++.h>
using namespace std;
int t,n,init[3000005],s[3000005];
deque<int> q;
int main(){
	cin>>t;
	for(int o=1;o<=t;o++){
		if(o==1){
			memset(init,0,sizeof(init));
			memset(s,0,sizeof(s));
			cin>>n;
			for(int i=1;i<=n;i++) cin>>init[i];
		}else{
			int id,num,xgcs;
			cin>>xgcs;
			for(int i=1;i<=xgcs;i++){
				cin>>id>>num;
				init[id]=num;
			}
		}
		for(int i=1;i<=n;i++) s[i]=init[i];
		int head=1,tail=n,ans=n;
		while(!q.empty()) q.pop_front();
		while(1){
			if(ans==2){
				ans=1;
				break;
			}
			ans--;
			int nmax,nmin;
			if(q.empty()||s[head]<=q.front()){
				nmin=s[head];
				head++;
			}else{
				nmin=q.front();
				q.pop_front();
			}
			if(q.empty()||s[tail]>q.back()){
				nmax=s[tail];
				tail--;
			}else{
				nmax=q.back();
				q.pop_back();
			}
			int now=nmax-nmin;
			//cout<<nmax<<" "<<nmin<<" "<<now<<endl;
			if(now>=min(s[head],q.front())){
				q.push_front(now);
		    }else break;
		}
		if(ans==n-1) ans++;
		cout<<ans<<endl;
	}
	return 0;
}
2023/7/19 13:32
加载中...