# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
700986 | 2023-02-19T15:45:39 Z | angelo_torres | 공장들 (JOI14_factories) | C++17 | 컴파일 오류 |
0 ms | 0 KB |
#include <bits/stdc++.h> #include "factories.h" #define ff first #define ss second using namespace std; typedef long long ll; const ll N = 3e5 + 10; const ll M = 2e6 + 20; const ll inf = 1e17; int n,t[N],p[N]; ll d[N],q[N]; vector<pair<int,ll>> g; deque<ll> s[N]; void dfs(int v,int f){ t[v] = 1; for(auto [u,w] : g[v]){ if(u == f) continue; d[] dfs(u,v); t[v] += t[u]; } } int find(int v,int f,int tm){ for(auto [u,w] : g[v]){ if(u == f) continue; if(t[u]*2 > tm) return find(u,v,tm); } return v; } void gfs(int v,int f){ s[v].push_top(d[v]); for(auto [u,w] : g[v]){ if(u == f) continue; d[u] = d[v] + w; gfs(u,v); } } void build(int v,int f){ dfs(v,f); int c = find(v,f,sz[v]); d[v] = 0, p[c] = f; gfs(v,f); for(auto [u,w] : g[c]){ if(u == f) continue; build(u,c); } } void Init(int N, int A[], int B[], int D[]){ n = N; for(int i = 0; i < n; ++i){ g[A[i]].push_back({B[i],(ll) D[i]}); g[B[i]].push_back({A[i],(ll) D[i]}); } build(0,-1); } long long Query(int S, int X[], int T, int Y[]){ for(int i = 0; i < S; ++i){ int aux = x[i], id = 0; while(aux != -1){ q[aux] = min(q[aux],s[x[i]][id]); aux = p[aux], id++; } } ll ans = inf; for(int i = 0; i < T; ++i){ int aux = y[i], id = 0; while(aux != -1){ ans = min(ans,q[aux]+s[y[i]][id]); aux = p[aux], id++; } } for(int i = 0; i < S; ++i){ int aux = x[i]; while(aux != -1) q[aux] = inf, aux = p[aux]; } return ans; }
Compilation message
factories.cpp: In function 'void dfs(int, int)': factories.cpp:19:22: error: no matching function for call to 'begin(std::pair<int, long long int>&)' 19 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/c++/10/bits/range_access.h:36, from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from factories.cpp:1: /usr/include/c++/10/initializer_list:90:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::begin(std::initializer_list<_Tp>)' 90 | begin(initializer_list<_Tp> __ils) noexcept | ^~~~~ /usr/include/c++/10/initializer_list:90:5: note: template argument deduction/substitution failed: factories.cpp:19:22: note: 'std::pair<int, long long int>' is not derived from 'std::initializer_list<_Tp>' 19 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from factories.cpp:1: /usr/include/c++/10/bits/range_access.h:51:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(_Container&)' 51 | begin(_Container& __cont) -> decltype(__cont.begin()) | ^~~~~ /usr/include/c++/10/bits/range_access.h:51:5: note: template argument deduction/substitution failed: /usr/include/c++/10/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(_Container&) [with _Container = std::pair<int, long long int>]': factories.cpp:19:22: required from here /usr/include/c++/10/bits/range_access.h:51:50: error: 'struct std::pair<int, long long int>' has no member named 'begin' 51 | begin(_Container& __cont) -> decltype(__cont.begin()) | ~~~~~~~^~~~~ /usr/include/c++/10/bits/range_access.h:61:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(const _Container&)' 61 | begin(const _Container& __cont) -> decltype(__cont.begin()) | ^~~~~ /usr/include/c++/10/bits/range_access.h:61:5: note: template argument deduction/substitution failed: /usr/include/c++/10/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(const _Container&) [with _Container = std::pair<int, long long int>]': factories.cpp:19:22: required from here /usr/include/c++/10/bits/range_access.h:61:56: error: 'const struct std::pair<int, long long int>' has no member named 'begin' 61 | begin(const _Container& __cont) -> decltype(__cont.begin()) | ~~~~~~~^~~~~ /usr/include/c++/10/bits/range_access.h:90:5: note: candidate: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::begin(_Tp (&)[_Nm])' 90 | begin(_Tp (&__arr)[_Nm]) | ^~~~~ /usr/include/c++/10/bits/range_access.h:90:5: note: template argument deduction/substitution failed: factories.cpp:19:22: note: mismatched types '_Tp [_Nm]' and 'std::pair<int, long long int>' 19 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:95, from factories.cpp:1: /usr/include/c++/10/valarray:1214:5: note: candidate: 'template<class _Tp> _Tp* std::begin(std::valarray<_Tp>&)' 1214 | begin(valarray<_Tp>& __va) | ^~~~~ /usr/include/c++/10/valarray:1214:5: note: template argument deduction/substitution failed: factories.cpp:19:22: note: 'std::pair<int, long long int>' is not derived from 'std::valarray<_Tp>' 19 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:95, from factories.cpp:1: /usr/include/c++/10/valarray:1224:5: note: candidate: 'template<class _Tp> const _Tp* std::begin(const std::valarray<_Tp>&)' 1224 | begin(const valarray<_Tp>& __va) | ^~~~~ /usr/include/c++/10/valarray:1224:5: note: template argument deduction/substitution failed: factories.cpp:19:22: note: 'std::pair<int, long long int>' is not derived from 'const std::valarray<_Tp>' 19 | for(auto [u,w] : g[v]){ | ^ factories.cpp:19:22: error: no matching function for call to 'end(std::pair<int, long long int>&)' In file included from /usr/include/c++/10/bits/range_access.h:36, from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from factories.cpp:1: /usr/include/c++/10/initializer_list:101:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::end(std::initializer_list<_Tp>)' 101 | end(initializer_list<_Tp> __ils) noexcept | ^~~ /usr/include/c++/10/initializer_list:101:5: note: template argument deduction/substitution failed: factories.cpp:19:22: note: 'std::pair<int, long long int>' is not derived from 'std::initializer_list<_Tp>' 19 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from factories.cpp:1: /usr/include/c++/10/bits/range_access.h:71:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.end()) std::end(_Container&)' 71 | end(_Container& __cont) -> decltype(__cont.end()) | ^~~ /usr/include/c++/10/bits/range_access.h:71:5: note: template argument deduction/substitution failed: /usr/include/c++/10/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.end()) std::end(_Container&) [with _Container = std::pair<int, long long int>]': factories.cpp:19:22: required from here /usr/include/c++/10/bits/range_access.h:71:48: error: 'struct std::pair<int, long long int>' has no member named 'end' 71 | end(_Container& __cont) -> decltype(__cont.end()) | ~~~~~~~^~~ /usr/include/c++/10/bits/range_access.h:81:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.end()) std::end(const _Container&)' 81 | end(const _Container& __cont) -> decltype(__cont.end()) | ^~~ /usr/include/c++/10/bits/range_access.h:81:5: note: template argument deduction/substitution failed: /usr/include/c++/10/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.end()) std::end(const _Container&) [with _Container = std::pair<int, long long int>]': factories.cpp:19:22: required from here /usr/include/c++/10/bits/range_access.h:81:54: error: 'const struct std::pair<int, long long int>' has no member named 'end' 81 | end(const _Container& __cont) -> decltype(__cont.end()) | ~~~~~~~^~~ /usr/include/c++/10/bits/range_access.h:100:5: note: candidate: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::end(_Tp (&)[_Nm])' 100 | end(_Tp (&__arr)[_Nm]) | ^~~ /usr/include/c++/10/bits/range_access.h:100:5: note: template argument deduction/substitution failed: factories.cpp:19:22: note: mismatched types '_Tp [_Nm]' and 'std::pair<int, long long int>' 19 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:95, from factories.cpp:1: /usr/include/c++/10/valarray:1234:5: note: candidate: 'template<class _Tp> _Tp* std::end(std::valarray<_Tp>&)' 1234 | end(valarray<_Tp>& __va) | ^~~ /usr/include/c++/10/valarray:1234:5: note: template argument deduction/substitution failed: factories.cpp:19:22: note: 'std::pair<int, long long int>' is not derived from 'std::valarray<_Tp>' 19 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:95, from factories.cpp:1: /usr/include/c++/10/valarray:1244:5: note: candidate: 'template<class _Tp> const _Tp* std::end(const std::valarray<_Tp>&)' 1244 | end(const valarray<_Tp>& __va) | ^~~ /usr/include/c++/10/valarray:1244:5: note: template argument deduction/substitution failed: factories.cpp:19:22: note: 'std::pair<int, long long int>' is not derived from 'const std::valarray<_Tp>' 19 | for(auto [u,w] : g[v]){ | ^ factories.cpp:21:5: error: expected primary-expression before ']' token 21 | d[] | ^ factories.cpp: In function 'int find(int, int, int)': factories.cpp:28:22: error: no matching function for call to 'begin(std::pair<int, long long int>&)' 28 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/c++/10/bits/range_access.h:36, from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from factories.cpp:1: /usr/include/c++/10/initializer_list:90:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::begin(std::initializer_list<_Tp>)' 90 | begin(initializer_list<_Tp> __ils) noexcept | ^~~~~ /usr/include/c++/10/initializer_list:90:5: note: template argument deduction/substitution failed: factories.cpp:28:22: note: 'std::pair<int, long long int>' is not derived from 'std::initializer_list<_Tp>' 28 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from factories.cpp:1: /usr/include/c++/10/bits/range_access.h:51:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(_Container&)' 51 | begin(_Container& __cont) -> decltype(__cont.begin()) | ^~~~~ /usr/include/c++/10/bits/range_access.h:51:5: note: template argument deduction/substitution failed: /usr/include/c++/10/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(_Container&) [with _Container = std::pair<int, long long int>]': factories.cpp:28:22: required from here /usr/include/c++/10/bits/range_access.h:51:50: error: 'struct std::pair<int, long long int>' has no member named 'begin' 51 | begin(_Container& __cont) -> decltype(__cont.begin()) | ~~~~~~~^~~~~ /usr/include/c++/10/bits/range_access.h:61:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(const _Container&)' 61 | begin(const _Container& __cont) -> decltype(__cont.begin()) | ^~~~~ /usr/include/c++/10/bits/range_access.h:61:5: note: template argument deduction/substitution failed: /usr/include/c++/10/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(const _Container&) [with _Container = std::pair<int, long long int>]': factories.cpp:28:22: required from here /usr/include/c++/10/bits/range_access.h:61:56: error: 'const struct std::pair<int, long long int>' has no member named 'begin' 61 | begin(const _Container& __cont) -> decltype(__cont.begin()) | ~~~~~~~^~~~~ /usr/include/c++/10/bits/range_access.h:90:5: note: candidate: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::begin(_Tp (&)[_Nm])' 90 | begin(_Tp (&__arr)[_Nm]) | ^~~~~ /usr/include/c++/10/bits/range_access.h:90:5: note: template argument deduction/substitution failed: factories.cpp:28:22: note: mismatched types '_Tp [_Nm]' and 'std::pair<int, long long int>' 28 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:95, from factories.cpp:1: /usr/include/c++/10/valarray:1214:5: note: candidate: 'template<class _Tp> _Tp* std::begin(std::valarray<_Tp>&)' 1214 | begin(valarray<_Tp>& __va) | ^~~~~ /usr/include/c++/10/valarray:1214:5: note: template argument deduction/substitution failed: factories.cpp:28:22: note: 'std::pair<int, long long int>' is not derived from 'std::valarray<_Tp>' 28 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:95, from factories.cpp:1: /usr/include/c++/10/valarray:1224:5: note: candidate: 'template<class _Tp> const _Tp* std::begin(const std::valarray<_Tp>&)' 1224 | begin(const valarray<_Tp>& __va) | ^~~~~ /usr/include/c++/10/valarray:1224:5: note: template argument deduction/substitution failed: factories.cpp:28:22: note: 'std::pair<int, long long int>' is not derived from 'const std::valarray<_Tp>' 28 | for(auto [u,w] : g[v]){ | ^ factories.cpp:28:22: error: no matching function for call to 'end(std::pair<int, long long int>&)' In file included from /usr/include/c++/10/bits/range_access.h:36, from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from factories.cpp:1: /usr/include/c++/10/initializer_list:101:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::end(std::initializer_list<_Tp>)' 101 | end(initializer_list<_Tp> __ils) noexcept | ^~~ /usr/include/c++/10/initializer_list:101:5: note: template argument deduction/substitution failed: factories.cpp:28:22: note: 'std::pair<int, long long int>' is not derived from 'std::initializer_list<_Tp>' 28 | for(auto [u,w] : g[v]){ | ^ In file included from /usr/include/c++/10/string:54, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from factories.cpp:1: /usr/include/c++/10/bits/range_access.h:71:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.end()) std::end(_Container&)' 71 | end(_Container& __cont) -> decltype(__cont.end()) | ^~~ /usr/include/c++/10/bits/range_access.h:71:5: note: template argument deduction/substitution failed: /usr/include/c++/10/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.end()) std::end(_Container&) [with _Container = std::pair<int, long long int>]': factories.cpp:28:22: required from here /usr/include/c++/10/bits/range_access.h:71:48: error: 'struct std::pair<int, long long int>' has no member named 'end' 71 | end(_Container& __cont) -> decltype(__cont.end()) | ~~~~~~~^~~ /usr/include/c++/10/bits/range_access.h:81:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.end()) std::end(const _Container&)' 81 | end(const _Container& __cont) -> decltype(__cont.end()) | ^~~ /usr/include/c++/10/bits/range_access.h:81:5: note: template argument deduction/substitution failed: /usr/include/c++/10/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.end()) std::end(const _Container&) [with _Container = std::pair<int, long long int>]': factories.cpp:28:22: required from here /usr/include/c++/10/bits/range_access.h:81:54: error: 'const struct std::pair<int, long long int>' has no member named 'end' 81 | end(const _Container& __cont) -> decltype(__cont.end()) |