有没有大佬帮忙改改,2TLE
查看原帖
有没有大佬帮忙改改,2TLE
702659
l0k9j8h7楼主2022/10/3 17:14
#include<bits/stdc++.h>
using namespace std;
int arr[200011],arr1[200011]={1};
int m[200011];
int l[200011];
inline int read(){
    int x=0,f=1;char s=getchar();
    while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
    while(s>='0'&&s<='9') x=x*10+s-'0',s=getchar();
    return x*f;
} 
inline void write(int x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0'); 
}
int main(){
	int n;
	//ios::sync_with_stdio(false);
	n=read();
	for(int i=0;i<n;i++){
		arr[i]=read();
	}
	
	bool flag=1;
	int last=arr[0];
	write(1);
    putchar(' ');
	int j=0;
	int cnt=0;
	while(flag){
		flag=0;
		for(int x=j;x<n;x++){
		 	if(arr[x]!=last&&arr1[x]!=1){
		 		write(x+1);putchar(' ');last=arr[x];
                //{int a=1;while(l[x-a]<=a&&a<n)l[x-a]=a,a++;}
		 		arr1[x]=1; flag=1;
		 		if(!flag){
			 		j=x;
				}
				
			}
		}if(j<n){
			putchar('\n');
		} j++; 
	last=-1;
	}
	for(int x=j;x<n;x++){
	 	if(arr1[x]==0)write(x+1),putchar('\n');
	}
    /*for(int x=1;x<n;x++){
    	write("%d ",l[x]);
	}*/
 	return 0;
}
2022/10/3 17:14
加载中...