Submission #546981

#TimeUsernameProblemLanguageResultExecution timeMemory
546981OttoTheDinoFile Paths (BOI15_fil)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define rep(i,s,e) for (ll i = s; i <= e; ++i) #define rrep(i,s,e) for (ll i = s; i >= e; --i) #define pb push_back #define pf push_front #define fi first #define se second #define all(a) a.begin(), a.end() #define SZ(a) (ll)a.size() typedef long long ll; typedef pair<ll, ll> ii; typedef vector<ii> vii; typedef vector<ll> vi; typedef vector<double> vd; typedef vector<string> vs; typedef vector<ll> vll; const ll mx = 3e3; vi adj[mx+1], files[mx+1]; ll cost[mx+1], costf[mx+1], ans[mx+1], s, k, p[mx+1]; unordered_map<ll,ll> cnt, spec; void dfs3 (ll u, ll cur){ spec[cur] = 1; for (ll v : adj[u]) { dfs3 (v, cur + cost[v]); } } void dfs2 (ll u, ll cur, ll d) { cnt[cur] += d; for (ll v : adj[u]) dfs2 (v, cur+cost[v], d); } void dfs (ll u, ll cur) { dfs2 (u, 0, 1); for (ll v : adj[u]) dfs (v, cur + cost[v]); for (ll v : files[u]) { ll x = k - cur - costf[v]; if (x==0) { ans[v]=1; goto out; } for (ll i = 1; i*i <= x; ++i) { if (x%i==0) { if (cnt[i-s]) { ans[v] = 1; goto out; } if (cnt[x/i-s]) { ans[v]=1 goto out; } } } ll go = u, cur2 = 0; while (go>=0) { if (spec[k-costf[v]-cur2-s]) {ans[v] = 1;goto out;} cur2 += cost[go]; go = p[go]; } out:; } dfs2 (u, 0, -1); } int main() { ios::sync_with_stdio(0); cin.tie(0); ll n, m; cin >> n >> m >> k >> s; ++s; p[0] = -1; rep (i,1,n) { cin >> p[i] >> cost[i]; ++cost[i]; adj[p[i]].pb(i); } rep (i,1,m) { ll pr; cin >> pr >> costf[i]; ++costf[i]; files[pr].pb(i); } dfs3(0,0); dfs (0,0); rep (i,1,m) cout << (ans[i]?"YES":"NO") << "\n"; return 0; }

Compilation message (stderr)

fil.cpp: In function 'void dfs(ll, ll)':
fil.cpp:56:31: error: expected ';' before 'goto'
   56 |                       ans[v]=1
      |                               ^
      |                               ;
   57 |                         goto out;
      |                         ~~~~   
fil.cpp:67:11: error: jump to label 'out'
   67 |           out:;
      |           ^~~
fil.cpp:53:28: note:   from here
   53 |                       goto out;
      |                            ^~~
fil.cpp:61:24: note:   crosses initialization of 'll cur2'
   61 |             ll go = u, cur2 = 0;
      |                        ^~~~
fil.cpp:61:16: note:   crosses initialization of 'll go'
   61 |             ll go = u, cur2 = 0;
      |                ^~
fil.cpp:67:11: error: jump to label 'out'
   67 |           out:;
      |           ^~~
fil.cpp:47:20: note:   from here
   47 |               goto out;
      |                    ^~~
fil.cpp:61:24: note:   crosses initialization of 'll cur2'
   61 |             ll go = u, cur2 = 0;
      |                        ^~~~
fil.cpp:61:16: note:   crosses initialization of 'll go'
   61 |             ll go = u, cur2 = 0;
      |                ^~