제출 #1340759

#제출 시각아이디문제언어결과실행 시간메모리
1340759SpyrosAlivThumper (NOI25_thumper)C++20
21 / 100
191 ms39952 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

void solve() {
    int n, m; cin >> n >> m;
    vector<int> ans(n+1, 0);
    vector<pair<int, int>> rab;
    rab.push_back({-1, -1});
    for (int i = 1; i <= n; i++) {
        int r, c; cin >> r >> c;
        assert(r == 1);
        rab.push_back({c, i});
        ans[i] = c;
    }
    vector<int> tot(n+1, 0);
    for (int i = 1; i <= m; i++) {
        int x; cin >> x;
        tot[x]++;
    }
    vector<tuple<int, int, int>> fin;
    for (int i = 1; i <= n; i++) {
        fin.push_back({rab[i].first, tot[i], rab[i].second});
    }
    sort(fin.begin(), fin.end());
    int s = 0;
    for (auto [col, p, idx]: fin) {
        ans[idx] += s;
        s += 2 * p;
    }
    s = 0;
    sort(fin.rbegin(), fin.rend());
    for (auto [col, p, idx]: fin) {
        ans[idx] -= s;
        s += 2 * p;
    }
    for (int i = 1; i <= n; i++) {
        cout << 1 << " " << ans[i] << "\n";
    }
}

signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int t = 1;
    while (t--) solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...