比赛 树立信心的模拟赛 评测结果 AAAAAAAAAA
题目名称 凯伦和游戏 最终得分 100
用户昵称 123 运行时间 0.020 s
代码语言 C++ 内存使用 2.04 MiB
提交时间 2017-09-01 20:41:04
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <stdio.h>
using namespace std;
int q[100000];
int w[100000];
int g[500][500]={0};
int ya[1000]={0},yb[1000]={0};
int n,m,ans=0,k=0,l=0;
int main(){
	freopen ("games.in","r",stdin);
	freopen ("games.out","w",stdout);
	int a,b;
	int i=0,j=0;
	scanf("%d%d",&n,&m);
	for(a=1;a<=n;a++)
		ya[a]=0x7FFFFFFF-1000;
	for(a=1;a<=m;a++)
		yb[a]=0x7FFFFFFF-1000;
	for(a=1;a<=n;a++)
	{
		for(b=1;b<=m;b++)
		{
			cin>>g[a][b];
			ya[a]=min(ya[a],g[a][b]);
		}
		if(ya[a]!=0x7FFFFFFF-1000)
			i+=ya[a];
	}
	for(a=1;a<=m;a++)
	{
		for(b=1;b<=n;b++)
			yb[a]=min(yb[a],g[b][a]);
		if(yb[a]!=0x7FFFFFFF-1000)
			j+=yb[a];
	}
	int d=0;
	for(a=1;a<=m;a++)
	{
		d=g[1][a]-ya[1];
		for(b=1;b<=n;b++)
		{
			if(g[b][a]-ya[b]!=d)
			{
				cout<<-1;
				exit(0);
			}
			
		}
		i+=d;
		for(b=1;b<=d;b++)
			q[++k]=a;
	}
	for(a=1;a<=n;a++)
	{
		d=g[a][1]-yb[1];
		for(b=1;b<=m;b++)
		{
			if(g[a][b]-yb[b]!=d)
			{
				cout<<-1;
				exit(0);
			}
		}
		j+=d;
		for(b=1;b<=d;b++)
			w[++l]=a;
	}
	if(i<=j)
	{
		cout<<i<<endl;
		for(a=1;a<=n;a++)
		{
			for(b=1;b<=ya[a];b++)
				printf("row %d\n",a);
		}
		for(a=1;a<=k;a++)
			printf("col %d\n",q[a]);
	}
	else
	{
		cout<<j<<endl;
		for(a=1;a<=m;a++)
		{
			for(b=1;b<=yb[a];b++)
				printf("col %d\n",a);
		}
		for(a=1;a<=l;a++)
			printf("row %d\n",w[a]);
	}
	return 0;
}