제출 #1127830

#제출 시각아이디문제언어결과실행 시간메모리
1127830AndrijaMBitaro’s Party (JOI18_bitaro)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define endl '\n' const int maxn=2e5+10; const int mod=1e9+7; vector<int>g[maxn]; vector<int>G[maxn]; int dp[maxn]; int c[maxn]; vector<int>v[maxn]; int pdp[maxn]; bool used[maxn]; vector<pair<int,int>>bst[maxn]; void dfs(int node,int par) { for(auto ax:g[node]) { if(ax==par)continue; dfs(ax,node); dp[node]=max(dp[node],dp[ax]+1); } } signed main() { ios::sync_with_stdio(false); int n,m,q; cin>>n>>m>>q; for(int i=0;i<m;i++) { int a,b; cin>>a>>b; a--;b--; g[b].push_back(a); G[a].push_back(b); } for(int i=0;i<n;i++) { bst[i].push_back({0,i}); } for(int i=0;i<n;i++) { for(auto &[d,x]:bst) { d++; } for(auto ax:G[i]) { vector<pair<int,int>>c; auto add = [&](pair<int,int> &a) { if (!used[a.second]) { c.push_back(a); used[a.second] = 1; } }; int l=0; int r=0; while(c.size()<350) { if(l==bst[i].size() && r==bst[ax].size()) { break; } if (r==bst[ax].size() || (l<bst[i].size() && bst[i][l].first>bst[ax][r].first)) add(bst[i][l++]); else add(bst[ax][r++]); } for(&[d,x]:c) { used[x]=0; } bst[ax]=c; } for(auto &[d,x]:bst[i]) { d--; } } while(q--) { int st; int kol; cin>>st>>kol; st--; memset(dp,0,sizeof dp); for(int i=0;i<kol;i++) { cin>>c[i]; used[c[i]]=1; c[i]--; dp[c[i]]=-1e9; } if(kol>=350) { ///memset(dp,0,sizeof dp); dfs(st,-1); cout<<dp[st]<<endl; continue; } else { int ans=-1; for(auto ax:bst[st]) { if(!used[ax.second]) { ans=ax.first; break; } } cout<<ans<<endl; } for(int i=0;i<kol;i++) { used[c[i]]=0; } } return 0; }

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

bitaro.cpp: In function 'int main()':
bitaro.cpp:50:19: error: 2 names provided for structured binding
   50 |         for(auto &[d,x]:bst)
      |                   ^~~~~
bitaro.cpp:50:19: note: while 'std::vector<std::pair<long long int, long long int> >' decomposes into 1 element
bitaro.cpp:76:19: error: 'd' was not declared in this scope
   76 |             for(&[d,x]:c)
      |                   ^
bitaro.cpp:76:21: error: 'x' was not declared in this scope
   76 |             for(&[d,x]:c)
      |                     ^
bitaro.cpp: In lambda function:
bitaro.cpp:76:23: error: expected '{' before ':' token
   76 |             for(&[d,x]:c)
      |                       ^
bitaro.cpp: In function 'int main()':
bitaro.cpp:76:23: error: taking address of rvalue [-fpermissive]
bitaro.cpp:76:23: error: expected ';' before ':' token
   76 |             for(&[d,x]:c)
      |                       ^
      |                       ;
bitaro.cpp:80:20: error: could not convert 'bst[ax].std::vector<std::pair<long long int, long long int> >::operator=(c)' from 'std::vector<std::pair<long long int, long long int> >' to 'bool'
   80 |             bst[ax]=c;
      |             ~~~~~~~^~
      |                    |
      |                    std::vector<std::pair<long long int, long long int> >
bitaro.cpp:81:9: error: expected primary-expression before '}' token
   81 |         }
      |         ^
bitaro.cpp:80:23: error: expected ')' before '}' token
   80 |             bst[ax]=c;
      |                       ^
      |                       )
   81 |         }
      |         ~              
bitaro.cpp:76:16: note: to match this '('
   76 |             for(&[d,x]:c)
      |                ^
bitaro.cpp:81:9: error: expected primary-expression before '}' token
   81 |         }
      |         ^