题意:题不是很好理解,直接简单说吧,输入14个数,每个数必须是奇数或者是0.然后你可以选择一个数把这个数从当前位置的下一个位置,按照顺序依次加1,如果加到最后就从前面开始加,直到当前选择这个数用完。最后把14个数里面是偶数的数加起来,输出最大偶数。例如样例一:前面两个1,分解就不说了,直接后面那个7分解,从7后面那个位置开始加1,知道加到第14个数,还剩余三个,从第一个加到第三个,刚好用完,结果是1 2 2 0 0 0 0 0 0 0 1 1 1 1。偶数加起来为4就是最大答案。前面的最多为2,所以取4.
题解:暴力 注意细节,卡细节很久。因为只有十四个数,我们遍历每个数都来分解,按照题目规则加到其他数上,然后把偶数加起来,输出最大的那个ans。
#include<bits/stdc++.h>
using namespace std;
long long a[20],b[20],ans;
int main()
{
for(int i=0; i<14; i++)
cin>>a[i];
for(int i=0; i<14; i++)
{
if(a[i])
{
long long cnt=0;
for(int k=0; k<14; k++)
b[k]=a[k];
b[i]=0;
long long x=a[i]%14,y=a[i]/14;
long long m=x;
for(int k=i+1; k<14&&m; k++,m--)
b[k]++;
for(int k=0; k<m; k++)
b[k]++;
for(int k=0; k<14; k++)
b[k]+=y;
// for(int k=0;k<14;k++)
// cout<<b[k];
cout<<endl;
for(int k=0; k<14; k++)
if(b[k]%2==0)
cnt+=b[k];
ans=max(ans,cnt);
}
}
cout<<ans;
return 0;
}