| 比赛 | 
    树立信心的模拟赛 | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    凯伦和游戏 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    Ostmbh | 
    运行时间 | 
    0.012 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.36 MiB  | 
    | 提交时间 | 
    2017-09-01 19:49:22 | 
显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;
int A[110][110];
int ans[110],Ans[110];
int main(){
	freopen("games.in","r",stdin);
	freopen("games.out","w",stdout);
	int n,m;
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			scanf("%d",&A[i][j]);
	if(n<=m){
		for(int i=1;i<=n;i++){
			int minn=0x7fffffff;
			for(int j=1;j<=m;j++)
				minn=min(minn,A[i][j]);
			for(int j=1;j<=m;j++)
				A[i][j]-=minn;
			ans[i]=minn;
		}
		for(int i=1;i<=m;i++){
			int minn=0x7fffffff;
			for(int j=1;j<=n;j++)
				minn=min(minn,A[j][i]);
			for(int j=1;j<=n;j++)
				A[j][i]-=minn;
			Ans[i]=minn;
		}
	}
	else {
		for(int i=1;i<=m;i++){
			int minn=0x7fffffff;
			for(int j=1;j<=n;j++)
				minn=min(minn,A[j][i]);
			for(int j=1;j<=n;j++)
				A[j][i]-=minn;
			Ans[i]=minn;
		}
		for(int i=1;i<=n;i++){
			int minn=0x7fffffff;
			for(int j=1;j<=m;j++)
				minn=min(minn,A[i][j]);
			for(int j=1;j<=m;j++)
				A[i][j]-=minn;
			ans[i]=minn;
		}
	}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			if(A[i][j]){
				puts("-1");
				return 0;
			}
	int dl=0;
	for(int i=1;i<=n;i++)
		dl+=ans[i];
	for(int i=1;i<=m;i++)
		dl+=Ans[i];
	printf("%d\n",dl);
	if(n<=m){
		for(int i=1;i<=n;i++)
			for(int j=1;j<=ans[i];j++)
				printf("row %d\n",i);
		for(int i=1;i<=m;i++)
			for(int j=1;j<=Ans[i];j++)
				printf("col %d\n",i);
	}
	else {
		for(int i=1;i<=m;i++)
			for(int j=1;j<=Ans[i];j++)
				printf("col %d\n",i);
		for(int i=1;i<=n;i++)
			for(int j=1;j<=ans[i];j++)
				printf("row %d\n",i);
	}
return 0;
}