这两种写法有什么区别?
查看原帖
这两种写法有什么区别?
242490
lyc呐楼主2023/7/31 10:55

WA代码

void solve() {
	cin >> n;
	for(int i = 1 ; i <= n ; i ++) cin >> a[i];
	for(int i = 1 ; i <= n ; i ++) {
		s[i] = (s[i - 1] + a[i]) % 7;
	}
	int ans = 0;
	for(int i = 0 ; i < 7 ; i ++) {
		int l = 1, r = n;
		while(l <= n && s[l] != i)	l ++;
		while(r >= 1 && s[r] != i)  r --;
		if(!i) l --;
		if(l < r) ans = max(ans, r - l);
	}
	cout << ans;
}

AC代码

void solve() {
	cin >> n;
	for(int i = 1 ; i <= n ; i ++) cin >> a[i];
	for(int i = 1 ; i <= n ; i ++) {
		s[i] = (s[i - 1] + a[i]) % 7;
	}
	int ans = 0;
	for(int i = 0 ; i < 7 ; i ++) {
		int l = 0, r = n;
		while(l <= n && s[l] != i)	l ++;
		while(r >= 1 && s[r] != i)  r --;
		if(l < r) ans = max(ans, r - l);
	}
	cout << ans;
}
2023/7/31 10:55
加载中...