| 比赛 | 
    树立信心的模拟赛 | 
    评测结果 | 
    AAWAAWAWWW | 
    | 题目名称 | 
    凯伦和游戏 | 
    最终得分 | 
    50 | 
    | 用户昵称 | 
    WHZ0325 | 
    运行时间 | 
    0.007 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.33 MiB  | 
    | 提交时间 | 
    2017-09-01 21:53:27 | 
显示代码纯文本
#include <cstdio>
#include <algorithm>
using namespace std;
int g[100][100];
int hang[100];int hi=0;
int lie[100];int li=0;
int main() {
	freopen("games.in","r",stdin);
	freopen("games.out","w",stdout);
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=0;i<n;i++) {
		for(int j=0;j<m;j++) {
			scanf("%d",&g[i][j]);
		}
	}
	for(int i=0;i<n;i++) {
		int min0=1000;
		for(int j=0;j<m;j++) {
			min0=min(min0,g[i][j]);
		}
		for(int j=0;j<min0;j++) {
			hang[hi++]=i+1;
		}
		for(int j=0;j<m;j++) {
			g[i][j]-=min0;
		}
	}
	for(int j=0;j<m;j++) {
		int min0=1000;
		for(int i=0;i<n;i++) {
			min0=min(min0,g[i][j]);
		}
		for(int i=0;i<min0;i++) {
			lie[li++]=j+1;
		}
		for(int i=0;i<n;i++) {
			g[i][j]-=min0;
		}
	}
	bool can=true;
	for(int i=0;i<n;i++) {
		for(int j=0;j<m;j++) {
			if(g[i][j]!=0) {
				can=false;
				break;
			}
		}
	}
	if(can) {
		printf("%d\n",hi+li);
		for(int i=0;i<hi;i++) {
			printf("row %d\n",hang[i]);
		}
		for(int i=0;i<li;i++) {
			printf("col %d\n",lie[i]);
		}
	}
	else {
		printf("-1\n");
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}