记录编号 |
588135 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Rotate Columns |
最终得分 |
100 |
用户昵称 |
小金 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.000 s |
提交时间 |
2024-05-27 16:34:54 |
内存使用 |
0.57 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
struct shu{
int x,y;
int z;
}a[500];
int n,m,t,cnt;
bool cmp(shu c,shu d)
{
return c.z>d.z;
}
int p(int c,int d,int e,int f)
{
if(a[c].y==a[d].y&&a[e].y==a[f].y)
{
if((abs(a[c].x-a[d].x)==1||abs(a[c].x-a[d].x)==3)&&abs(a[e].x-a[f].x)==2)
{
return 1;
}
if((abs(a[e].x-a[f].x)==1||abs(a[e].x-a[f].x)==3)&&abs(a[c].x-a[d].x)==2)
{
return 1;
}
}
if(a[c].y==a[e].y&&a[d].y==a[f].y)
{
if((abs(a[c].x-a[e].x)==1||abs(a[c].x-a[e].x)==3)&&abs(a[d].x-a[f].x)==2)
{
return 1;
}
if((abs(a[d].x-a[f].x)==1||abs(a[d].x-a[f].x)==3)&&abs(a[c].x-a[e].x)==2)
{
return 1;
}
}
if(a[c].y==a[f].y&&a[d].y==a[e].y)
{
if((abs(a[c].x-a[f].x)==1||abs(a[c].x-a[f].x)==3)&&abs(a[d].x-a[e].x)==2)
{
return 1;
}
if((abs(a[d].x-a[e].x)==1||abs(a[d].x-a[e].x)==3)&&abs(a[c].x-a[f].x)==2)
{
return 1;
}
}
return 0;
}
int main()
{
freopen("happygameT1.in","r",stdin);
freopen("happygameT1.out","w",stdout);
scanf("%d",&t);
while(t--)
{
memset(a,0,sizeof(a));
cnt=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cnt++;
scanf("%d",&a[cnt].z);
a[cnt].x=i;
a[cnt].y=j;
}
}
sort(a+1,a+cnt+1,cmp);
int ans=0;
if(n<=3)
{
for(int i=1;i<=n;i++)
{
ans+=a[i].z;
}
printf("%d\n",ans);
}
else
{
if(p(1,2,3,4)==1)
{
ans=a[1].z+a[2].z+a[3].z;
int i=5;
while(p(1,2,3,i)==1)
{
i++;
}
ans+=a[i].z;
printf("%d\n",ans);
}
else
{
ans=a[1].z+a[2].z+a[3].z+a[4].z;
printf("%d\n",ans);
}
}
}
return 0;
}