P5990 [PA2015] Kieszonkowe无法输出
  • 板块学术版
  • 楼主liaoxuan
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/21 21:00
  • 上次更新2024/5/21 23:14:30
查看原帖
P5990 [PA2015] Kieszonkowe无法输出
1294608
liaoxuan楼主2024/5/21 21:00

作为一名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;
}

蒟蒻我的思路是先将奇偶分开,检查奇数列之和是否为奇,如果是,则减去排序后数列的最后一个,再将其与另一个偶数列相加。若没有偶数且奇数只有一个,则判断无解。
以上是蒟蒻我的思路,还请各位大神指点。\

感谢!!!

2024/5/21 21:00
加载中...