답안 #961975

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
961975 2024-04-13T00:58:02 Z Kakarot Cat Exercise (JOI23_ho_t4) C++
0 / 100
1 ms 348 KB
#include <bits/stdc++.h>
#define int int64_t
using namespace std;

void setIO() {
    cin.tie(0)->sync_with_stdio(0);
}

void solve() {
    //cout << "tc/death";
    int n, idx;
    cin >> n;
    vector<pair<int, int>> tc(n);
    for(int i = 0; i < n; i++) {
        cin >> tc[i].first;
        tc[i].second = i;
        if(tc[i].first == n) idx = tc[i].second;
    } 
    vector<vector<int>> adj(n);
    for(int i = 0; i < n-1; i++) {
        int u, v; cin >> u >> v;
        adj[--u].push_back(--v);
        adj[v].push_back(u);
    }
    priority_queue<pair<int, int>> pq;
    pq.push({n, idx});
    int ans = 0;
    if(idx-1 > n-idx) {
        for(int i = 0; i < idx; i++) {
            pq.push(tc[i]);
        }
        while(!pq.empty()) {
            auto a = pq.top();
            pq.pop();
            if(pq.empty()) break;
            ans += abs(a.second-pq.top().second);
        }
    }
    else {
        for(int i = idx+1; i < n; i++) {
            pq.push(tc[i]);
        }
        while(!pq.empty()) {
            auto a = pq.top();
            pq.pop();
            if(pq.empty()) break;
            ans += abs(a.second-pq.top().second);
        }
    }
    cout << ans;
}

int32_t main() {
    setIO();
    solve();
    return 0;
}

Compilation message

Main.cpp: In function 'void solve()':
Main.cpp:29:26: warning: 'idx' may be used uninitialized in this function [-Wmaybe-uninitialized]
   29 |         for(int i = 0; i < idx; i++) {
      |                        ~~^~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Incorrect 0 ms 344 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Incorrect 0 ms 344 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Incorrect 0 ms 344 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Incorrect 0 ms 344 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Incorrect 0 ms 344 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Incorrect 0 ms 344 KB Output isn't correct
4 Halted 0 ms 0 KB -