比赛 树立信心的模拟赛 评测结果 AAAWWWAWAW
题目名称 凯伦和游戏 最终得分 50
用户昵称 サイタマ 运行时间 0.007 s
代码语言 C++ 内存使用 0.40 MiB
提交时间 2017-09-01 21:59:58
显示代码纯文本
#include<fstream>
#include<algorithm>
#include<string>
using namespace std;
ifstream cin("games.in");
ofstream cout("games.out");
int n,m,i,j,g[101][101],g1[101][101],r[101],r1[101],c[101],c1[101],l=0,l1=0,is_a=0,shu[501],shu1[501];
string str[501],str1[501];
int main()
{
	cin>>n>>m;
	for(i=1;i<=100;i++)r[i]=c[i]=999;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
		{
			cin>>g[i][j];
			g1[i][j]=g[i][j];
			r[i]=min(r[i],g[i][j]);
			r1[i]=r[i];
			c[j]=min(c[j],g[i][j]);
			c1[j]=c1[j];
		}
	for(i=1;i<=n;i++)
	{
		if(r[i]>0)
		{
			for(int k=1;k<=m;k++)
			{
				g[i][k]-=r[i];
				if(g[i][k]==0)
					c[k]=0;
			}
			str[++l]="row ";
			shu[l]=i;
		}
	}
	for(j=1;j<=m;j++)
	{
		if(c[j]>0)
		{
			for(int k=1;k<=n;k++)
			{
				g[k][j]-=c[j];
			}
			str[++l]="col ";
			shu[l]=j;
		}
	}
	for(j=1;j<=m;j++)
	{
		for(int k=1;k<=n;k++)
		{
			g1[k][j]-=c1[j];
			if(g1[k][j]==0)
				r1[k]=0;
		}
		str1[++l1]="col ";
		shu1[l1]=j;
	}
	/*for(i=1;i<=n;i++)
	{
		if(r1[i]>0)
		{
			for(int k=1;k<=m;k++)
			{
				g1[i][k]-=r1[i];
			}
			str1[++l1]="row ";
			shu1[l1]=i;
		}
	}*/
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
		{
			if(g[i][j]>0)
			{
				is_a=1;
				break;
			}
		}
		if(is_a==1)
			break;
	}
	if(is_a==1)cout<<"-1"<<endl;
	if(is_a==0)
	{
		if(l<=l1)
		{
			cout<<l<<endl;
			for(i=1;i<=l;i++)
				cout<<str[i]<<shu[i]<<endl;
		}
		if(l1<l)
		{
			cout<<l1<<endl;
			for(i=1;i<=l1;i++)
				cout<<str1[i]<<shu1[i]<<endl;
		}
	}
	cin.close();
	cout.close();
	return 0;
}