钻石争霸赛7-7 约会大作战
作者:互联网
钻石争霸赛7-7 约会大作战
//约会大作战
int main()
{
int N,M,Q;//N:第一组人数,M:第二组人数,Q:询问次数
scanf("%d %d %d",&N,&M,&Q);
int i,j;
int x1,y1,x2,y2;
//存放好感度
//A[i][j]表示第一组编号为 i的人对第二组编号为j
//的人的好感度
int A[N+1][M+1]={0};//第一行第一列不存放数据
int B[M+1][N+1]={0};
//temp_A[1][2]表示第一组中的编号为1的人,在
//第二次被询问时 ,和他一起被询问的第二组的
//人的编号为2
int temp_A[N+1][M+1]={0};
int temp_B[M+1][N+1]={0};
//行表示第几次询问,列表示询问的第几组,第一列不存放
//数据
int C[Q][3]={0};
int numbers_A[N+1]={0};//A[i]表示第一组编号为i的人被
//询问次数
int numbers_B[M+1]={0};
int result[Q][2]={0};//记录结果
int size=0;
int count[3][101]={0};//count[i][j]表示第i组的编号为
//j的人约会成功的次数
for(i=1;i<=N;++i)
{
for(j=1;j<=M;++j)
{
scanf("%d",&A[i][j]);
}
}
for(i=1;i<=M;++i)
{
for(j=1;j<=N;++j)
{
scanf("%d",&B[i][j]);
}
}
for(i=0;i<Q;++i)
{
scanf("%d %d",&C[i][1],&C[i][2]);
numbers_A[C[i][1]]++;
numbers_B[C[i][2]]++;
temp_A[C[i][1]][numbers_A[C[i][1]]]=C[i][2];
temp_B[C[i][2]][numbers_B[C[i][2]]]=C[i][1];
if(numbers_A[C[i][1]]>2&&numbers_B[C[i][2]]>2)
{
x1=temp_A[C[i][1]][numbers_A[C[i][1]]-1];
y1=temp_A[C[i][1]][numbers_A[C[i][1]]-2];
x2=temp_B[C[i][2]][numbers_B[C[i][2]]-1];
y2=temp_B[C[i][2]][numbers_B[C[i][2]]-2];
if(A[C[i][1]][C[i][2]]>A[C[i][1]][x1]&&
A[C[i][1]][C[i][2]]>A[C[i][1]][y1]&&
B[C[i][2]][C[i][1]]>B[C[i][2]][x2]&&
B[C[i][2]][C[i][1]]>B[C[i][2]][y2]&&
count[1][C[i][1]]<1&&count[2][C[i][2]]<1)
{
result[size][0]=C[i][1];
result[size][1]=C[i][2];
++count[1][C[i][1]];
++count[2][C[i][2]];
++size;
}
}
}
printf("\n");
if(size==0)printf("PTA is my only love\n");
for(i=0;i<size;++i)
{
printf("%d %d\n",result[i][0],result[i][1]);
}
return 0;
}
标签:钻石,temp,int,约会,第一组,争霸赛,numbers,&&,编号 来源: https://blog.csdn.net/weixin_47809459/article/details/117165764