https://www.luogu.com.cn/problem/P1056
错误原因:最后输出的行和列不是按照能解决多少同学而输出,而是按照从小列向大列、小行向大行输出
/* .................................................................................................................................. */
const int maxn = 1e5+50;
int line[maxn];//列
int row[maxn];
int fi[maxn];
int se[maxn];
int main(){
int m, n, k, l, d;
RD(m, n, k, l, d);
REP(i, d){
int x, y, p, q;
RD(x, y, p, q);
if (x == p){line[min(y, q)]++;}
if (y == q){row[min(x, p)]++;}
}
//int ans = 0;
int i = 0;
while(i < k){
int maxx = 0;
for(int j = 1; j <= m-1; j++){
if (row[maxx] < row[j]){
maxx = j;
}
}
i++;
fi[maxx]++;
row[maxx] = 0;
}
i = 0;
while(i < l){
int maxx = 0;
for(int j = 1; j <= n-1; j++){
if (line[maxx] < line[j]){
maxx = j;
}
}
i++;
se[maxx]++;
line[maxx] = 0;
}
for(int i = 0; i < 1005; i++){
if(fi[i]){
cout << i << " ";
}
}
cout << '
';
for(int i = 0; i < 1005; i++){
if(se[i]){
cout << i << " ";
}
}
return 0;
}