Submission #524176

# Submission time Handle Problem Language Result Execution time Memory
524176 2022-02-08T18:21:05 Z nickmet2004 Simple game (IZhO17_game) C++11
49 / 100
173 ms 9500 KB
#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 <= 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 , -2);
        }
        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 , +2);
        }
    }
}
 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;
        }
    }
}

Compilation message

game.cpp:39:2: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   39 |  main (){
      |  ^~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 4 ms 6860 KB Output is correct
3 Correct 4 ms 6604 KB Output is correct
4 Correct 4 ms 6732 KB Output is correct
5 Correct 6 ms 6732 KB Output is correct
6 Correct 4 ms 6860 KB Output is correct
7 Correct 3 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 4 ms 6860 KB Output is correct
3 Correct 4 ms 6604 KB Output is correct
4 Correct 4 ms 6732 KB Output is correct
5 Correct 6 ms 6732 KB Output is correct
6 Correct 4 ms 6860 KB Output is correct
7 Correct 3 ms 332 KB Output is correct
8 Correct 146 ms 1312 KB Output is correct
9 Correct 171 ms 9500 KB Output is correct
10 Correct 173 ms 9448 KB Output is correct
11 Correct 161 ms 1396 KB Output is correct
12 Correct 150 ms 1932 KB Output is correct
13 Correct 160 ms 1756 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 4 ms 6860 KB Output is correct
3 Correct 4 ms 6604 KB Output is correct
4 Correct 4 ms 6732 KB Output is correct
5 Correct 6 ms 6732 KB Output is correct
6 Correct 4 ms 6860 KB Output is correct
7 Correct 3 ms 332 KB Output is correct
8 Correct 146 ms 1312 KB Output is correct
9 Correct 171 ms 9500 KB Output is correct
10 Correct 173 ms 9448 KB Output is correct
11 Correct 161 ms 1396 KB Output is correct
12 Correct 150 ms 1932 KB Output is correct
13 Correct 160 ms 1756 KB Output is correct
14 Incorrect 138 ms 9228 KB Output isn't correct
15 Halted 0 ms 0 KB -