比赛 树立信心的模拟赛 评测结果 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;
}