比赛 2024.12.21 评测结果 AAWWWWETTETE
题目名称 Moorbles 最终得分 17
用户昵称 djyqjy 运行时间 6.860 s
代码语言 C++ 内存使用 3.72 MiB
提交时间 2024-12-21 17:57:50
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
	int f=1,num=0;
	char c=getchar();
	while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}
	while(c>='0'&&c<='9') num=num*10+c-'0',c=getchar();
	return num*f;
}
const int N=100010;
int t;
int n,m,k;
int a[N][2];
int l[N];
int z,b;
int r;
bool flag;
int main()
{
	freopen("Moo.in","r",stdin);
	freopen("Moo.out","w",stdout);
	t=read();
	while(t--)
	{
		flag=1;
		n=read();m=read();k=read();
		for(int i=1;i<=m;i++)
		{
			z=b=INT_MAX;
		    for(int j=1,x;j<=k;j++)
		    {
		    	x=read();
		    	if(x&1) a[i][0]=max(a[i][0],x),b=min(b,a[i][0]);
		    	else a[i][1]=max(a[i][1],x),z=min(z,a[i][1]);
			}
			if(a[i][0]==0) a[i][0]=-z;
			if(a[i][1]==0) a[i][1]=-b;
		}
		l[m]=1;
		for(int i=m-1;i>=1;i--) l[i]=max(l[i+1]+min(a[i][0],a[i][1]),1);
		r=n;
		for(int i=1;i<=m;i++)
		{
			r-=min(a[i][0],a[i][1]);
			if(r<l[i])
			{
				flag=0;
				printf("-1\n");
				for(int i=1;i<=m;i++) a[i][0]=a[i][1]=l[i]=0;
				break;
			}
		}
		if(!flag) continue;
		for(int i=1;i<=m;i++)
		{
			if(n-a[i][0]>=l[i]) printf("Even "),n-=a[i][0];
			else printf("Odd "),n-=a[i][1];
			a[i][0]=a[i][1]=l[i]=0;
		}
		printf("\n");
	}
	return 0;
}