제출 #524182

#제출 시각아이디문제언어결과실행 시간메모리
524182nickmet2004Simple game (IZhO17_game)C++11
100 / 100
168 ms11204 KiB
#include<bits/stdc++.h> #define int long long using namespace std; const int N = 2e6 + 5; int n,m, a[N], F[2000005]; void upd(int i , int d){ while(i <= 2*N){ F[i] += d; i += i & -i; } } int get(int i){ int s= 0; while(i){ s += F[i] , i -= i&-i; } return s; } void M(int A , int p , int h){ if(A > h){ upd(h , +1); if(a[p] >= A){ upd(a[p] + 1 , +1); upd(A , -1);upd(A + 1 , -1); } else { upd(a[p] , -1); } }else { upd(h + 1 , -1); if(a[p] >= A){ upd(a[p]+ 1 , +1); }else { upd(a[p] , -1); upd(A +1 , +1); upd(A , +1); } } } main (){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n>>m; for(int i =1; i<= n; ++i)cin>>a[i]; for(int i = 1; i< n; ++i){ int x = a[i] , y = a[i + 1]; if(x > y)swap(x , y); upd(x , 1), upd(y + 1 ,-1); } while(m--){ int x; cin >> x; if(x==1){ int p , h; cin >> p >> h; int A=-1 , B=-1; if(p==1) A = a[p+1]; else if(p==n) B = a[p-1]; else A = a[p-1] , B = a[p+1]; if(A != -1)M(A , p , h); if(B != -1) M(B , p , h); a[p]=h; }else { int h;cin>>h; cout << get(h)<<endl; } } }

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

game.cpp:40:2: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   40 |  main (){
      |  ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...