求大佬解答为什么我的代码总有几个样例过不去
查看原帖
求大佬解答为什么我的代码总有几个样例过不去
1380473
ZY_202301005129楼主2024/7/7 09:23
#include <iostream>
#include<algorithm>
using namespace std;
#define N 50010
long long sum[N];
long long  a[N];
long long a0[N], a01 = 1;
long long a1[N], a11 = 1;
long long a2[N], a21 = 1;
long long a3[N], a31 = 1;
long long a4[N], a41 = 1;
long long a5[N], a51 = 1;
long long a6[N], a61 = 1;
int main()
{
	int n;cin >> n;
	for (int i = 1;i <= n;i++)
	{
		cin >> a[i];
		if (i == 1)
		{
         sum[1] = a[1];
		}
			
		else sum[i] = sum[i - 1] + a[i];
	}
	for (int i = 1;i <= n;i++)
		switch (sum[i] % 7)
		{
		case 0: { a0[a01++] = i; break; }
		case 1: { a1[a11++] = i; break; }
		case 2: { a2[a21++] = i; break; }
		case 3: { a3[a31++] = i; break; }
		case 4: { a4[a41++] = i; break; }
		case 5: { a5[a51++] = i; break; }
		case 6: { a6[a61++] = i; break; }
		};
	
	if (a01 <= 2 && a11 <= 2 && a21 <= 2 && a31 <= 2 && a41 <= 2 && a51 <= 2 && a61 <= 2)
		cout << 0;
	else 
	{
    sort(a0+1, a0 + a01 );
	sort(a1+1, a1 + a11 );
	sort(a2+1, a2 + a21 );
	sort(a3+1, a3 + a31 );
	sort(a4+1, a4 + a41 );
	sort(a5+1, a5 + a51 );
	sort(a6+1, a6 + a61 );
	long long s[7],s1=0;
	long long max0 = a0[a01 - 1]-a0[1];
	long long max1 = a1[a11 - 1] - a1[1];
	long long max2 = a2[a21 - 1] - a2[1];
	long long max3 = a3[a31 - 1] - a3[1];
	long long max4 = a4[a41 - 1] - a4[1];
	long long max5 = a5[a51 - 1] - a5[1];
	long long max6 = a6[a61 - 1] - a6[1];
	s[s1++] = max0;
	s[s1++] = max1;
	s[s1++] = max2;
	s[s1++] = max3;
	s[s1++] = max4;
	s[s1++] = max5;
	s[s1++] = max6;
		sort(s, s + 7, greater<long long>());
		cout << s[0];
	}
}	
2024/7/7 09:23
加载中...