P1056实在想不明白该怎么改代码,有大佬能帮我看看吗
#include<bits/stdc++.h>
using namespace std;
int a[5050][5050],m,n,k,w,d,flagm[5050],flagn[5050],maxm=0,maxn=0;
int main(){
cin>>m>>n>>k>>w>>d;
memset(a,0,sizeof(a));
for(int i=1;i<=d;i++){
int x,y,q,p;
cin>>x>>y>>q>>p;
a[x][y]=i;
a[q][p]=i;
if(x==q){
flagn[min(y,p)]+=1;
maxn=max(maxn,min(y,p));
}
if(y==p){
flagm[min(x,q)]+=1;
maxm=max(maxm,min(x,q));
}
}
int l=0,r=0;
for(int i=1;i<=maxm;i++){
r=max(r,flagm[i]);
}
for(int i=1;i<=maxm;i++){
if(flagm[i]==r&&w>=0){
flagm[i]=0;
for(int j=1;j<=n;j++){
if(a[i][j]==a[i+1][j]){
a[i][j]=0;
a[i+1][j]=0;
}
}
r=0;
cout<<i<<" ";
for(int i=1;i<=maxm;i++){
r=max(r,flagm[i]);
}
w--;
}
}
cout<<endl;
for(int i=1;i<=maxn;i++){
l=max(l,flagn[i]);
}
for(int i=1;i<=maxn;i++){
if(flagn[i]==l&&k>=0){
flagn[i]=0;
for(int j=1;j<=m;j++){
if(a[j][i]==a[j][i+1]){
a[j][i]=0;
a[j][i+1]=0;
}
}
cout<<i<<" ";
l=0;
for(int j=1;j<=maxn;j++){
l=max(l,flagn[j]);
}
k--;
}
}
return 0;
}