作为一名c++新手,蒟蒻我在做P5990时思路十分清晰,但却无法输出。
以下是蒟蒻我的代码:\
#include <bits/stdc++.h>
using namespace std;
int n,x,k,ansj,anso,sum;
int a[1000006];
vector<int> j;
vector<int> o;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
{
if(a[i]%2==1)
j.push_back(a[i]);
if(a[i]%2==0)
o.push_back(a[i]);
}
const int aa=j.size();
const int bb=o.size();
if(bb==0&&aa==1)
{
cout<<"NIESTETY";
return 0;
}
int J[aa],O[bb];
for(int i=0;i<n;i++)
{
J[i+1]=j[i];
}
for(int i=0;i<n;i++)
{
O[i+1]=o[i];
}
sort(O+1,O+1+n,cmp);
sort(J+1,J+1+n,cmp);
for(int i=1;i<=n;i++)
{
anso+=O[i];
}
int i;
for(i=1;i<=n;i++)
{
ansj+=J[i];
}
if(ansj%2==1)
ansj-=J[i];
cout<<anso+ansj;
return 0;
}
蒟蒻我的思路是先将奇偶分开,检查奇数列之和是否为奇,如果是,则减去排序后数列的最后一个,再将其与另一个偶数列相加。若没有偶数且奇数只有一个,则判断无解。
以上是蒟蒻我的思路,还请各位大神指点。\