# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1020420 | 2024-07-12T04:13:20 Z | nathan4690 | Tree Rotations (POI11_rot) | C++14 | 1000 ms | 65536 KB |
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define ll long long #define pll ll #define ld long double #define el cout << '\n' #define f1(i,n) for(ll i=1;i<=n;i++) #define __file_name "" using namespace std; using namespace __gnu_pbds; #define ordered_set tree<pll, null_type, less<pll>, rb_tree_tag, tree_order_statistics_node_update> using namespace std; const ll maxn = 4e5+5, inf=1e18; ll n,a[maxn]; vector<ll> G[maxn]; ordered_set values[maxn]; ll dfs(ll u, ll p){ if(a[u]){ // cout << u << ' ' << a[u];el; values[u].insert(a[u]); return 0; } ll resp = 0; ll le = 0, ri = 0; for(ll c: G[u]){ if(c != p){ resp += dfs(c, u); if(le == 0) le = c; else ri = c; } } if(values[ri].size() < values[le].size()) swap(values[ri], values[le]); // le < ri ll res1 = 0, res2 = 0; // res1: count inversion if le comes before ri // res2: count inversions if le comes after ri for(auto item: values[le]){ res1 += values[ri].order_of_key(item); res2 += values[ri].size() - values[ri].order_of_key(item+1); } // cout << u << ' ' << res1 << ' ' << res2;el; for(ll c: G[u]){ if(c != p){ if(values[c].size() > values[u].size()) values[u].swap(values[c]); for(auto item: values[c]){ values[u].insert(item); } } } return resp + min(res1, res2); } ll timer = 0; ll readInput(){ ll v; cin >> v; ll myval = timer; timer++; if(v){ a[myval] = v; }else{ ll c1 = readInput(), c2 = readInput(); G[c1].push_back(myval); G[myval].push_back(c1); G[c2].push_back(myval); G[myval].push_back(c2); } return myval; } int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); if(fopen(__file_name ".inp", "r")){ freopen(__file_name ".inp","r",stdin); freopen(__file_name ".out","w",stdout); } // code here cin >> n; timer = 1; ll root = readInput(); cout << dfs(root, 0); return 0; } /* Code by: Nguyen Viet Trung Nhan Cau Giay Secondary School */
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 26 ms | 47192 KB | Output is correct |
2 | Correct | 27 ms | 47196 KB | Output is correct |
3 | Correct | 26 ms | 47196 KB | Output is correct |
4 | Correct | 27 ms | 47196 KB | Output is correct |
5 | Correct | 27 ms | 47196 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 28 ms | 47448 KB | Output is correct |
2 | Correct | 27 ms | 47440 KB | Output is correct |
3 | Correct | 27 ms | 47452 KB | Output is correct |
4 | Correct | 26 ms | 47432 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 28 ms | 47708 KB | Output is correct |
2 | Correct | 39 ms | 47696 KB | Output is correct |
3 | Correct | 28 ms | 47708 KB | Output is correct |
4 | Correct | 29 ms | 47704 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 92 ms | 49304 KB | Output is correct |
2 | Correct | 39 ms | 49240 KB | Output is correct |
3 | Correct | 89 ms | 49104 KB | Output is correct |
4 | Correct | 118 ms | 49488 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1069 ms | 53084 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 100 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 64 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 662 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 65 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 78 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 68 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |