제출 #1296408

#제출 시각아이디문제언어결과실행 시간메모리
1296408Jawad_Akbar_JJSimple game (IZhO17_game)C++20
100 / 100
37 ms5312 KiB
#include <iostream> using namespace std; const int N = 1<<20; int h[N], ft[N]; void Add(int i, int v){ for (; i < N; i += i & -i) ft[i] += v; } int get(int i, int ans = 0){ for (; i; i -= i & -i) ans += ft[i]; return ans; } void process(int i, int v){ if (i == 0 or h[i+1] == 0) return; Add(min(h[i], h[i+1]), v); Add(max(h[i], h[i+1]), -v); } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n, q; cin>>n>>q; for (int i=1;i<=n;i++){ cin>>h[i]; process(i-1, 1); } for (int i=1;i<=q;i++){ int t, id, H; cin>>t; if (t == 1){ cin>>id>>H; process(id-1, -1); process(id, -1); h[id] = H; process(id-1, 1); process(id, 1); } else{ cin>>H; cout<<get(H)<<'\n'; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...