比赛 树立信心的模拟赛 评测结果 AAWAAAAAWA
题目名称 凯伦和游戏 最终得分 80
用户昵称 Aeons 运行时间 0.290 s
代码语言 C++ 内存使用 0.36 MiB
提交时间 2017-09-01 21:22:14
显示代码纯文本
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("games.in");
ofstream fout("games.out");
int f[110][110];
int m,n;
int ans_min[110];
int ans_max=0;
int b=0;
int row[110],col[110];
int main()
{
	fin>>n>>m;
	int i,j;
	for(i=1;i<=n;i++)
	for(j=1;j<=m;j++)
	{
		fin>>f[i][j];
		f[i][0]=9999;
	}
	for(i=1;i<=100;i++)
	{
		row[i]=col[i]=0;
		ans_min[i]=0;
	}
	for(i=1;i<=n;i++)
	{
		ans_min[i]=f[i][0];
		for(j=1;j<=m;j++)
		{
			if(ans_min[i]>f[i][j])
				ans_min[i]=f[i][j];
		}
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
		{
			f[i][j]-=ans_min[i];
		}
		ans_max+=ans_min[i];
		row[i]+=ans_min[i];
	}
	
	for(j=1;j<=m;j++)
	{
		if(f[1][j]!=0)
		{
			ans_max+=f[1][j];
			int a=f[1][j];
			for(i=1;i<=n;i++)
			{
				f[i][j]-=a;
				
			}
			col[j]+=a;
		}
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
		{
			if(f[i][j]!=0)
			{
				b=1;
				fout<<-1<<endl;
				break;
			}
		}
		if(b==1)
			break;
	}
	if(b!=1)
	{
		fout<<ans_max<<endl;
		for(i=1;i<=n;i++)
		{
			if(row[i])
			{
				for(j=1;j<=row[i];j++)
					fout<<"row"<<' '<<i<<endl;
			}
		}
		for(j=1;j<=m;j++)
		{
			if(col[j])
			{
				for(i=1;i<=col[j];i++)
					fout<<"col"<<' '<<j<<endl;
			}
		}
	}
	fin.close();
	fout.close();
	return 0;
}