TLE...
查看原帖
TLE...
1408401
wunianen楼主2025/7/30 18:58
#include <bits/stdc++.h>
using namespace std;
int t1;
int n,a[10000005],t[100000005],Max[10000005],Min[10000005],d[10000005],top=1;
int mes(){
	top=1;
	cin>>n;
	for(int j=1;j<=n;j++){
		Max[j]=-1;
		Min[j]=1000000002;
	}
	for(int j=1;j<=10000005;j++){
		t[j]=0;
	}
	return 0;
}
int M(int j){
	if(j==1){
		Max[j]=a[j];
		Min[j]=a[j];
	}else{
		Max[j]=max(Max[j-1],a[j]);
		Min[j]=min(Min[j-1],a[j]);
	}
	if(t[a[j]]==2){
		d[top++]=a[j];
	}
	return 0;
}
int Cout(int j,bool flag){
	if(j==-1){
		cout<<endl;
	}else if(flag||j<=2){
		cout<<Max[j]*2<<" ";
	}else{
		cout<<Max[j]+Min[j]<<" ";
	}
	return 0;
}
int inta(int j){
	cin>>a[j];
	t[a[j]]++;
	M(j);
	return 0;
}
int main(){
	cin>>t1;
	for(int i=1;i<=t1;i++){
		mes();
		for(int j=1;j<=n;j++){
			inta(j);
			bool flag;
			for(int k=1;k<=j;k++){
				if(a[k]==Max[j]||a[k]==Min[j]){
					flag=1;
					if(t[a[k]]>=2&&a[k]==Min[j]&&Max[j]!=Min[j]){
						flag=0;
						break;
					}
				}else{
					flag=0;
					break;
				}
			}
			Cout(j,flag);
		}
		Cout(-1,0);
	}
    return 0;
}

怎么搞?awa

2025/7/30 18:58
加载中...