站外题求助调代码,玄关
  • 板块灌水区
  • 楼主cxk_ctrl
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/10/6 08:29
  • 上次更新2024/10/6 10:18:03
查看原帖
站外题求助调代码,玄关
1210072
cxk_ctrl楼主2024/10/6 08:29

题目描述

小 A 有 nn 张卡牌,这 nn 张卡牌初始时都放在桌子上,第 ii 张上写有一个非负整数 aia_i

接下来小 A 会选出一些卡牌,第一轮他会从桌子上选出一张上面写有奇数的卡牌拿到手上,第二轮他会选出一张上面写有偶数的卡牌拿到手上,以此类推,轮数为奇数时他需要选一张上面写有奇数的卡牌,轮数为偶数时他需要选一张写有偶数的卡牌。

小 A 可以一直进行选牌操作,直到他一共选出了 kk 张牌拿在手上,或者某一轮的时候他没有对应奇偶性的牌可拿了。小 A 想要知道他选出的牌上的数字和最大是多少?

输入

第一行两个整数 n,kn,k,表示卡牌数量和小 A 最多选几张牌。

第二行 nn 个以空格分隔的非负整数 a1,a2,,ana_1,a_2,\dots, a_n

输出

一行一个整数答案。

【数据范围】

对于 40%40\% 的数据,n1000n\le 1000

对于另外 20%20\% 的数据,保证 nn 为偶数且 a1,a2,,ana_1,a_2,\dots, a_n 中偶数和奇数都各有 n2\frac{n}{2} 个。

对于 100%100\% 的数据,1n1051\le n\le 10^51kn1\le k\le n0ai10000\le a_i\le 1000

这名菜爆了的蒟蒻の代码

#include<bits/stdc++.h>
using namespace std;
int n,k;
int a[1000010];
int zuidazhihe=0;
int big=-1;
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	int num=0;
	for(int i=1;i<=k;i++)
	{
		num++;
		if(num%2==0)//偶数
		{
			for(int i=2;i<=n;i++)
			{
				big=-1;
				if(i%2==0)
				{
					if(a[i]>big)
					{
						big=a[i];
					}
				}
			}
			zuidazhihe+=big;
		} 
		else
		{
			for(int i=1;i<=n;i++)
			{
				big=-1;
				if(i%2!=0)
				{
					if(a[i]>big)
					{
						big=a[i];
					}
				}
			}
			zuidazhihe+=big;
		}
		if(num==n)
		{
			break;//是没有了 
		}
	}
	cout<<zuidazhihe;
	return 0;
}
2024/10/6 08:29
加载中...