比赛 |
树立信心的模拟赛 |
评测结果 |
AAAAAAAAAA |
题目名称 |
凯伦和游戏 |
最终得分 |
100 |
用户昵称 |
123 |
运行时间 |
0.020 s |
代码语言 |
C++ |
内存使用 |
2.04 MiB |
提交时间 |
2017-09-01 20:41:04 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <stdio.h>
using namespace std;
int q[100000];
int w[100000];
int g[500][500]={0};
int ya[1000]={0},yb[1000]={0};
int n,m,ans=0,k=0,l=0;
int main(){
freopen ("games.in","r",stdin);
freopen ("games.out","w",stdout);
int a,b;
int i=0,j=0;
scanf("%d%d",&n,&m);
for(a=1;a<=n;a++)
ya[a]=0x7FFFFFFF-1000;
for(a=1;a<=m;a++)
yb[a]=0x7FFFFFFF-1000;
for(a=1;a<=n;a++)
{
for(b=1;b<=m;b++)
{
cin>>g[a][b];
ya[a]=min(ya[a],g[a][b]);
}
if(ya[a]!=0x7FFFFFFF-1000)
i+=ya[a];
}
for(a=1;a<=m;a++)
{
for(b=1;b<=n;b++)
yb[a]=min(yb[a],g[b][a]);
if(yb[a]!=0x7FFFFFFF-1000)
j+=yb[a];
}
int d=0;
for(a=1;a<=m;a++)
{
d=g[1][a]-ya[1];
for(b=1;b<=n;b++)
{
if(g[b][a]-ya[b]!=d)
{
cout<<-1;
exit(0);
}
}
i+=d;
for(b=1;b<=d;b++)
q[++k]=a;
}
for(a=1;a<=n;a++)
{
d=g[a][1]-yb[1];
for(b=1;b<=m;b++)
{
if(g[a][b]-yb[b]!=d)
{
cout<<-1;
exit(0);
}
}
j+=d;
for(b=1;b<=d;b++)
w[++l]=a;
}
if(i<=j)
{
cout<<i<<endl;
for(a=1;a<=n;a++)
{
for(b=1;b<=ya[a];b++)
printf("row %d\n",a);
}
for(a=1;a<=k;a++)
printf("col %d\n",q[a]);
}
else
{
cout<<j<<endl;
for(a=1;a<=m;a++)
{
for(b=1;b<=yb[a];b++)
printf("col %d\n",a);
}
for(a=1;a<=l;a++)
printf("row %d\n",w[a]);
}
return 0;
}