七夕祭50pts WA#3#5#7#8#9悬关
查看原帖
七夕祭50pts WA#3#5#7#8#9悬关
607952
ZHANGGUIZHI楼主2024/11/5 11:24
#include<bits/stdc++.h>

using namespace std;
typedef long long ll;
const int N = 1e5 + 3;
int n, m, T, col[N], row[N];
ll ca[N], ra[N];
signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    cin >> n >> m >> T;
    int x, y;
    for (int i = 1; i <= T; i++) {
        cin >> x >> y;
        col[x]++, row[y]++;
    }
    bool flagc = 0, flagr = 0;
    if (T % m == 0) flagc = 1;
    if (T % n == 0) flagr = 1;
    if (!flagc && !flagr) {
        cout << "impossible" << '\n';
        return 0;
    }
    if (flagc == flagr) cout << "both" << ' ';
    else if (flagc) cout << "column" << ' ';
    else cout << "row" << ' ';
    ll ans = 0;
    if (flagc) {
        for (int i = 1; i <= m; i++) ca[i] = col[i] - T / m;
        for (int i = 1; i <= m; i++) ca[i] = ca[i - 1] + ca[i];
        sort(ca + 1, ca + 1 + m);
        int tmp = (m + 1) / 2;
        for (int i = 1; i <= m; i++) {
            if (i == tmp) continue;
            ans += abs(ca[i] - ca[tmp]);
        }
    }
    if (flagr) {
        for (int i = 1; i <= n; i++) ra[i] = row[i] - T / n;
        for (int i = 1; i <= n; i++) ra[i] = ra[i - 1] + ra[i];
        sort(ra + 1, ra + 1 + n);
        int tm = (n + 1) / 2;
        for (int i = 1; i <= n; i++) {
            if (i == tm) continue;
            ans += abs(ra[i] - ra[tm]);
        }
    }
    cout << ans << '\n';
    return 0;
}
2024/11/5 11:24
加载中...