这个题我当天就看到了,我也知道题意,我就一直没做。一开始以为有什么规律来实现,其实真的没有,直接暴力,也就跑14多次。并不影响,直接暴力思路单纯,我的做法是FOR历遍,cur来跑一圈 当前a[i] /14,cur再跑一遍 当前a[i]%14;
这题真的不错,把成环的 用取余来处理,注意一定要从 0 开始
贴上代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll a[14]={0};
for(int i=0;i<14;i++){
scanf("%lld",&a[i]);
}
ll ans=0;
for(int i=0;i<14;i++){
if(a[i]){
ll b[14];
ll tmp=0;
memcpy(b,a,sizeof(a));
b[i]=0;
for(int cur=1;cur<=14;cur++){
b[(i+cur)%14]+=a[i]/14;
}
for(int cur=1;cur<=a[i]%14;cur++){
b[(i+cur)%14]++;
}
for(int i=0;i<14;i++){
if(b[i]%2==0){
tmp+=b[i];
}
}
ans=max(tmp,ans);
}
}
printf("%lld\n",ans);
return 0;
}