제출 #462197

#제출 시각아이디문제언어결과실행 시간메모리
462197azberjibiou구슬과 끈 (APIO14_beads)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #define gibon ios::sync_with_stdio(false); cin.tie(0); #define bp __builtin_popcount #define fir first #define sec second #define pii pair<int, int> #define pll pair<ll, ll> #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") typedef long long ll; using namespace std; int dx[4]={0, 1, 0, -1}, dy[4]={1, 0, -1 , 0}; const int mxN=200010; const int mxM=7300000; const int mxK=100001; const int MOD=1000000007; const ll INF=9223372036854775807; int N; vector <pii> v[mxN]; vector <pii> adj[mxN]; ll par[mxN]; ll dp1[mxN], dp2[mxN]; typedef struct cmp1{ bool operator()(ll a, ll b) { return a>b; } }cmp1; void dfs0(int now, int pre) { for(pii nxt : v[now]) if(nxt.fir!=pre) { dfs0(nxt.fir, now); adj[now].push_back(nxt); par[nxt.fir]=nxt.sec; } } void dfs1(int now) { priority_queue <ll, vector<ll>, cmp1> pq; ll sum1=0; for(pii nxt : adj[now]) { dfs1(nxt.fir); } for(pii nxt : adj[now]) //printf("dp1[%d]=%lld, dp2[%d]=%lld\n", nxt.fir, dp1[nxt.fir], nxt.fir, dp2[nxt.fir]); sum1+=dp1[nxt.fir]; pq.push(dp2[nxt.fir]+nxt.sec-dp1[nxt.fir]); } while(pq.size()>2) pq.pop(); ll tmp1, tmp2; if(adj[now].empty()) { dp1[now]=dp2[now]=0; return; } if(adj[now].size()==1) { dp2[now]=sum1; dp1[now]=max(dp2[now], sum1+par[now]+pq.top()); return; } tmp1=pq.top(); pq.pop(); tmp2=pq.top(); pq.pop(); //printf("tmp1=%lld, tmp2=%lld\n", tmp1, tmp2); dp2[now]=sum1+max((ll)0, tmp1+tmp2); dp1[now]=max(dp2[now], sum1+par[now]+tmp2); } int main() { gibon cin >> N; for(int i=1;i<N;i++) { int a, b, c; cin >> a >> b >> c; v[a].push_back({b, c}); v[b].push_back({a, c}); } dfs0(1, -1); dfs1(1); cout << dp2[1]; }

컴파일 시 표준 에러 (stderr) 메시지

beads.cpp: In function 'void dfs1(int)':
beads.cpp:47:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   47 |     for(pii nxt : adj[now])
      |     ^~~
beads.cpp:50:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   50 |         pq.push(dp2[nxt.fir]+nxt.sec-dp1[nxt.fir]);
      |         ^~
beads.cpp:50:21: error: 'nxt' was not declared in this scope
   50 |         pq.push(dp2[nxt.fir]+nxt.sec-dp1[nxt.fir]);
      |                     ^~~
beads.cpp: At global scope:
beads.cpp:52:5: error: expected unqualified-id before 'while'
   52 |     while(pq.size()>2)  pq.pop();
      |     ^~~~~
beads.cpp:54:5: error: expected unqualified-id before 'if'
   54 |     if(adj[now].empty())
      |     ^~
beads.cpp:59:5: error: expected unqualified-id before 'if'
   59 |     if(adj[now].size()==1)
      |     ^~
beads.cpp:65:5: error: 'tmp1' does not name a type
   65 |     tmp1=pq.top();
      |     ^~~~
beads.cpp:66:5: error: 'pq' does not name a type
   66 |     pq.pop();
      |     ^~
beads.cpp:67:5: error: 'tmp2' does not name a type
   67 |     tmp2=pq.top();
      |     ^~~~
beads.cpp:68:5: error: 'pq' does not name a type
   68 |     pq.pop();
      |     ^~
beads.cpp:70:5: error: 'dp2' does not name a type
   70 |     dp2[now]=sum1+max((ll)0, tmp1+tmp2);
      |     ^~~
beads.cpp:71:5: error: 'dp1' does not name a type
   71 |     dp1[now]=max(dp2[now], sum1+par[now]+tmp2);
      |     ^~~
beads.cpp:72:1: error: expected declaration before '}' token
   72 | }
      | ^