96分求助
查看原帖
96分求助
1231644
Mr_Lx楼主2024/11/22 22:09
#include<iostream>
using namespace std;

int prefix[50010],l[7] = {-1,-1,-1,-1,-1,-1,-1},r[7] = {-1,-1,-1,-1,-1,-1,-1};
int len(int *a,int n){
	for(int i=0;i<=n/2 + 1;i++){
		if(l[a[i]] == -1){
			l[a[i]] = i;
		}//TODO
		
		if(r[a[n-i]] == -1){
			r[a[n-i]] = n-i;
		}
		for(int k=0;k<7;k++){
			if(l[k] != -1 && r[k] != -1){
				return r[k] - l[k];
			}
		}
	}
	
}
int main(){
	int n;
	cin >>n;
	
	for(int i=1;i<=n;i++){
		int temp;
		cin >> temp;
		prefix[i] = (prefix[i-1] + temp) % 7;
	}
	
	int le = len(prefix,n);
	cout <<le;

}

爆的是 50000行7输出只有7000多

2024/11/22 22:09
加载中...