fireworks.cpp:1:19: warning: extra tokens at end of #include directive
1 | #include<iostream>#include<vector>#include<queue>using namespace std;struct pq { priority_queue<int, vector<int>, greater<int>> q; int offside=0; void push(int val) { q.push(val-offside); } int top(){return q.top()+offside;} void pop(){q.pop();} void move(int k){offside+=k;} int size(){return q.size();}};struct node{ priority_queue<int> lr; pq rr; int val=0; int sz(){return lr.size()+rr.size();} void add(int k) { if(!lr.size()) { lr.push(0); lr.push(k); rr.push(k); }else { int c=rr.top(); rr.pop(); rr.move(k); rr.push(c); rr.move(k); c=lr.top(); lr.pop(); lr.push(c+k); } }};void merge(node &a, node& b) { b.val+=a.val; while(a.lr.size()) { int i=a.lr.top(); a.lr.pop(); if(i<=b.lr.top()) { b.lr.push(i); } else { b.rr.push(i); //b.val+=i-b.lr.top(); b.lr.push(b.rr.top()); b.rr.pop(); b.val+=i-b.lr.top(); } } while(a.rr.size()) { int i=a.rr.top(); a.rr.pop(); if(i>=b.rr.top()) { b.rr.push(i); } else { b.lr.push(i); b.rr.push(b.lr.top()); b.lr.pop(); b.val+=b.rr.top()-i; } }}const int N=300010;vector<pair<int,int>> g[N];node res[N];void dfs(int at) { // res[at].add(0); for(auto to:g[at]) { dfs(to.first); res[to.first].add(to.second); if(res[at].sz()<res[to.first].sz()) { swap(res[at],res[to.first]); } merge(res[to.first], res[at]); }}int main(){ int n, m; cin >> n >> m; for(int i =2;i<=n+m;i++) { int p, c; cin >> p >> c; g[p].push_back({i,c}); } dfs(1); cout << res[1].val << endl; return 0;}
| ^
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/crt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
collect2: error: ld returned 1 exit status