P1056 排座椅

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 << '\n';
    for(int i = 0; i < 1005; i++){
        if(se[i]){
            cout << i << " ";
        }
    }
    return 0;
}
posted @ 2019-12-05 20:38  月光不染是非  阅读(95)  评论(0编辑  收藏  举报