제출 #1119031

#제출 시각아이디문제언어결과실행 시간메모리
1119031PagodePaiva다리 (APIO19_bridges)C++17
컴파일 에러
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; const int N = 200010; int v[N]; struct Segtree{ int tree[4*N]; int join(int a, int b){ return min(a, b); } void build(int node, int l, int r){ if(l == r){ tree[node] = v[l]; return; } int mid = (l+r)/2; build(2*node, l, mid); build(2*node+1, mid+1, r); tree[node] = join(tree[2*node], tree[2*node+1]); } void udpate(int node, int l, int r, int pos, int val){ if(l == r){ tree[node] = val; return; } int mid = (l+r)/2; if(l <= pos and pos <= mid) update(2*node, l, mid, pos, val); else update(2*node+1, mid+1, r, pos, val); tree[node] = join(tree[2*node], tree[2*node+1]); return; } int query(int node, int l, int r, int tl, int tr){ if(l > tr or tl > r) return 1e9+1; if(l <= tl and tr <= r) return tree[node]; int mid = (tl+tr)/2; return join(query(2*node, l, r, tl,mid), query(2*node+1, l, r, mid+1, tr)); } } seg; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; for(int i = 0;i < m;i++){ int a, b, w; cin >> a >> b >> w; v[i+1] = w; } seg.build(1, 1, n-1); int q; cin >> q; while(q--){ int t; cin >> t; if(t == 1){ int s, w; cin >> s >> w; seg.update(1, 1, n-1, s, w); } else{ int s, w; cin >> s >> w; int l = 1, r = s-1; int ans = s; while(l <= r){ int mid = (l+r)/2; int val = seg.query(1, mid, s-1, 1, n-1); if(val < w){ l = mid+1; } else{ ans = mid; r = mid-1; } } l = s; r = n-1; int ans2 = s; while(l <= r){ int mid = (l+r)/2; int val = seg.query(1, s, mid, 1, n-1); if(val < w){ r = mid-1; } else{ ans = mid; l = mid+1; } } cout << ans2-ans+1 << '\n'; } } }

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

bridges.cpp: In member function 'void Segtree::udpate(int, int, int, int, int)':
bridges.cpp:29:37: error: 'update' was not declared in this scope; did you mean 'udpate'?
   29 |         if(l <= pos and pos <= mid) update(2*node, l, mid, pos, val);
      |                                     ^~~~~~
      |                                     udpate
bridges.cpp:30:14: error: 'update' was not declared in this scope; did you mean 'udpate'?
   30 |         else update(2*node+1, mid+1, r, pos, val);
      |              ^~~~~~
      |              udpate
bridges.cpp: In function 'int main()':
bridges.cpp:60:17: error: 'struct Segtree' has no member named 'update'; did you mean 'udpate'?
   60 |             seg.update(1, 1, n-1, s, w);
      |                 ^~~~~~
      |                 udpate