제출 #245668

#제출 시각아이디문제언어결과실행 시간메모리
245668YeraBirthday gift (IZhO18_treearray)C++17
컴파일 에러
0 ms0 KiB
// In The Name Of God //#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #include <iostream> #include <iomanip> #include <fstream> #include <vector> #include <set> #include <map> #include <cstring> #include <string> #include <bitset> #include <cmath> #include <cassert> #include <ctime> #include <algorithm> #include <sstream> #include <list> #include <queue> #include <deque> #include <stack> #include <cstdlib> #include <cstdio> #include <iterator> #include <functional> #include <unordered_set> #include <unordered_map> using namespace std; using ll = long long; using ld = long double; using ull = unsigned long long; #define f first #define s second #define pb push_back #define mp make_pair #define sagyndym_seni ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() const int N = 2e5+5, p1 = 911382323, p2 = 972663749, INF = 1e9+123; inline int read(){ char c = getchar_unlocked(); bool minus = 0; while (c < '0' || '9' < c){ if(c == '-'){ minus = 1;} c = getchar_unlocked(); if(c == '-'){ minus = 1;} } int res = 0; while ('0' <= c && c <= '9') { res = (res << 3) + (res << 1) + c - '0'; c = getchar_unlocked(); } if(minus){ res = (~res) + 1;} return res; } int n, m, q; int pos[N * 100], LOG[N * 100], vec[N]; pair<int, int> st[N * 100][30]; vector<int> g[N]; vector<pair<int, int>> order; void dfs(int v, int p, int depth){ order.pb({depth, v}); pos[v] = sz(order)-1; for(auto to : g[v]){ if(to == p){ continue;} dfs(to, v, depth + 1); order.pb({depth, v}); } } inline void precalc(){ LOG[1] = 0; for(int i = 2; i < (N * 100); i++){ LOG[i] = LOG[i >> 1] + 1; } for(int i = 0; i < sz(order); i++){ assert(i < (N << 2)); st[i][0] = order[i]; } for(int j = 1; j < 23; j++){ for(int i = 0; i + (1 << j) < sz(order); i++){ st[i][j] = min(st[i][j-1], st[i + (1 << (j-1))][j-1]); } } } inline int mn(int l, int r){ if(r < l){ swap(l, r);} int j = LOG[r - l + 1]; pair<int, int> res = min(st[l][j], st[r - (1 << j) + 1][j]); return res.s; } multiset<pair<int, int>> tUno[N << 2], tDos[N << 2]; void build_uno(int v, int vl, int vr){ if(vl == vr){ int val = vl == m - 1 ? -1 : mn(pos[vec[vl]], pos[vec[vl + 1]]); tUno[v].insert({val, vl}); return; } int vm = (vl + vr) >> 1; build_uno(v*2+1, vl, vm); build_uno(v*2+2, vm+1, vr); merge(all(tUno[v*2+1]), all(tUno[v*2+2]), inserter(tUno[v], tUno[v].begin())); } void build_dos(int v, int vl, int vr){ if(vl == vr){ tDos[v].insert({vec[vl], vl}); return; } int vm = (vl + vr) >> 1; build_dos(v*2+1, vl, vm); build_dos(v*2+2, vm+1, vr); merge(all(tDos[v*2+1]), all(tDos[v*2+2]), inserter(tDos[v], tDos[v].begin())); } void modify_dos(int v, int vl, int vr, int idx, int old_val, int new_val){ tDos[v].erase(tDos[v].find({old_val, idx})); tDos[v].insert({new_val, idx}); if(vl != vr){ int vm = (vl + vr) >> 1; if(idx <= vm){ modify_dos(v*2+1, vl, vm, idx, old_val, new_val); }else{ modify_dos(v*2+2, vm+1, vr, idx, old_val, new_val); } } } void modify_uno(int v, int vl, int vr, int idx, int old_val, int new_val){ tUno[v].erase(tUno[v].find({old_val, idx})); tUno[v].insert({new_val, idx}); if(vl != vr){ int vm = (vl + vr) >> 1; if(idx <= vm){ modify_uno(v*2+1, vl, vm, idx, old_val, new_val); }else{ modify_uno(v*2+2, vm+1, vr, idx, old_val, new_val); } } } int query_uno(int v, int vl, int vr, int l, int r, int val){ if(l > vr || r < vl || r < l){ return -1;} if(l <= vl && vr <= r){ auto it = tUno[v].lower_bound({val, -1}); if(it == tUno[v].end()){ return -1;} pair<int, int> temp = *it; return temp.f == val ? temp.s : -1; } int vm = (vl + vr) >> 1; int q = query_uno(v*2+1, vl, vm, l, r, val); if(q != -1){ return q;} return query_uno(v*2+2, vm+1, vr, l, r, val); } int query_dos(int v, int vl, int vr, int l, int r, int val){ if(l > vr || r < vl || r < l){ return -1;} if(l <= vl && vr <= r){ auto it = tDos[v].lower_bound({val, -1}); if(it == tDos[v].end()){ return -1;} pair<int, int> temp = *it; return temp.f == val ? temp.s : -1; } int vm = (vl + vr) >> 1; int q = query_dos(v*2+1, vl, vm, l, r, val); if(q != -1){ return q;} return query_dos(v*2+2, vm+1, vr, l, r, val); } int main(){ sagyndym_seni; n = read(); m = read(); q = read(); for(int i = 1; i < n; i++){ int v = read()-1, u = read()-1; g[v].pb(u); g[u].pb(v); } for(int i = 0; i < m; i++){ vec[i] = read()-1; } dfs(0, 0, 0); precalc(); build_uno(0, 0, m - 1); build_dos(0, 0, m - 1); while(q--){ int tp = read()-1; if(!tp){ int p = read()-1, v = read()-1; modify_dos(0, 0, m - 1, p, vec[p], v); if(p != m - 1){ modify_uno(0, 0, m - 1, p, mn(pos[vec[p]], pos[vec[p + 1]]), mn(pos[v], pos[vec[p + 1]])); } if(p != 0){ modify_uno(0, 0, m - 1, p - 1, mn(pos[vec[p-1]], pos[vec[p]]), mn(pos[v], pos[vec[p-1]])); } vec[p] = v; }else{ int l = read()-1, r = read()-1, p = read()-1; int res1 = query_dos(0, 0, m - 1, l, r, p); if(res1 != -1){ cout<<'\n'<<res1 + 1<<' '<<res1 + 1; continue;} int res2 = query_uno(0, 0, m - 1, l, r - 1, p); res2 == -1 ? cout<<"\n-1 -1" : cout<<'\n'<<res2 + 1<<' '<<res2 + 2; } } return 0; } /* TIMUS: 292220YC*/

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

/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `void std::__facet_shims::(anonymous namespace)::__destroy_string<wchar_t>(void*)':
(.text._ZNSt13__facet_shims12_GLOBAL__N_116__destroy_stringIwEEvPv+0x1e): relocation truncated to fit: R_X86_64_32S against symbol `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_empty_rep_storage' defined in .bss._ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE[_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE] section in /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-wstring-inst.o)
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `void std::__facet_shims::(anonymous namespace)::__destroy_string<char>(void*)':
(.text._ZNSt13__facet_shims12_GLOBAL__N_116__destroy_stringIcEEvPv+0x1e): relocation truncated to fit: R_X86_64_32S against symbol `std::string::_Rep::_S_empty_rep_storage' defined in .bss._ZNSs4_Rep20_S_empty_rep_storageE[_ZNSs4_Rep20_S_empty_rep_storageE] section in /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-string-inst.o)
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `std::__facet_shims::(anonymous namespace)::money_get_shim<wchar_t>::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool, std::ios_base&, std::_Ios_Iostate&, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&) const':
(.text._ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIwE6do_getESt19istreambuf_iteratorIwSt11char_traitsIwEES6_bRSt8ios_baseRSt12_Ios_IostateRSbIwS5_SaIwEE+0xfe): relocation truncated to fit: R_X86_64_32S against symbol `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_empty_rep_storage' defined in .bss._ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE[_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE] section in /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-wstring-inst.o)
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `std::__facet_shims::(anonymous namespace)::money_get_shim<wchar_t>::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool, std::ios_base&, std::_Ios_Iostate&, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&) const':
(.text._ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIwE6do_getESt19istreambuf_iteratorIwSt11char_traitsIwEES6_bRSt8ios_baseRSt12_Ios_IostateRSbIwS5_SaIwEE+0x17b): relocation truncated to fit: R_X86_64_32S against symbol `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_empty_rep_storage' defined in .bss._ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE[_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE] section in /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-wstring-inst.o)
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `std::__facet_shims::(anonymous namespace)::money_get_shim<char>::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&, std::_Ios_Iostate&, std::string&) const':
(.text._ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIcE6do_getESt19istreambuf_iteratorIcSt11char_traitsIcEES6_bRSt8ios_baseRSt12_Ios_IostateRSs+0xfe): relocation truncated to fit: R_X86_64_32S against symbol `std::string::_Rep::_S_empty_rep_storage' defined in .bss._ZNSs4_Rep20_S_empty_rep_storageE[_ZNSs4_Rep20_S_empty_rep_storageE] section in /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-string-inst.o)
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `std::__facet_shims::(anonymous namespace)::money_get_shim<char>::do_get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&, std::_Ios_Iostate&, std::string&) const':
(.text._ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIcE6do_getESt19istreambuf_iteratorIcSt11char_traitsIcEES6_bRSt8ios_baseRSt12_Ios_IostateRSs+0x17b): relocation truncated to fit: R_X86_64_32S against symbol `std::string::_Rep::_S_empty_rep_storage' defined in .bss._ZNSs4_Rep20_S_empty_rep_storageE[_ZNSs4_Rep20_S_empty_rep_storageE] section in /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-string-inst.o)
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `void std::__facet_shims::__numpunct_fill_cache<char>(std::integral_constant<bool, false>, std::locale::facet const*, std::__numpunct_cache<char>*)':
(.text._ZNSt13__facet_shims21__numpunct_fill_cacheIcEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E[_ZNSt13__facet_shims21__numpunct_fill_cacheIcEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E]+0xa1): relocation truncated to fit: R_X86_64_32S against symbol `std::string::_Rep::_S_empty_rep_storage' defined in .bss._ZNSs4_Rep20_S_empty_rep_storageE[_ZNSs4_Rep20_S_empty_rep_storageE] section in /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-string-inst.o)
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `void std::__facet_shims::__numpunct_fill_cache<char>(std::integral_constant<bool, false>, std::locale::facet const*, std::__numpunct_cache<char>*)':
(.text._ZNSt13__facet_shims21__numpunct_fill_cacheIcEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E[_ZNSt13__facet_shims21__numpunct_fill_cacheIcEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E]+0x24f): relocation truncated to fit: R_X86_64_32S against symbol `std::string::_Rep::_S_empty_rep_storage' defined in .bss._ZNSs4_Rep20_S_empty_rep_storageE[_ZNSs4_Rep20_S_empty_rep_storageE] section in /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-string-inst.o)
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `void std::__facet_shims::__numpunct_fill_cache<wchar_t>(std::integral_constant<bool, false>, std::locale::facet const*, std::__numpunct_cache<wchar_t>*)':
(.text._ZNSt13__facet_shims21__numpunct_fill_cacheIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E[_ZNSt13__facet_shims21__numpunct_fill_cacheIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E]+0xa9): relocation truncated to fit: R_X86_64_32S against symbol `std::string::_Rep::_S_empty_rep_storage' defined in .bss._ZNSs4_Rep20_S_empty_rep_storageE[_ZNSs4_Rep20_S_empty_rep_storageE] section in /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-string-inst.o)
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `void std::__facet_shims::__numpunct_fill_cache<wchar_t>(std::integral_constant<bool, false>, std::locale::facet const*, std::__numpunct_cache<wchar_t>*)':
(.text._ZNSt13__facet_shims21__numpunct_fill_cacheIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E[_ZNSt13__facet_shims21__numpunct_fill_cacheIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E]+0x114): relocation truncated to fit: R_X86_64_32S against symbol `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_empty_rep_storage' defined in .bss._ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE[_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE] section in /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-wstring-inst.o)
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a(cow-shim_facets.o): In function `void std::__facet_shims::__numpunct_fill_cache<wchar_t>(std::integral_constant<bool, false>, std::locale::facet const*, std::__numpunct_cache<wchar_t>*)':
(.text._ZNSt13__facet_shims21__numpunct_fill_cacheIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E[_ZNSt13__facet_shims21__numpunct_fill_cacheIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E]+0x294): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status