Submission #524177

# Submission time Handle Problem Language Result Execution time Memory
524177 2022-02-08T18:21:46 Z nickmet2004 Simple game (IZhO17_game) C++11
49 / 100
164 ms 9576 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 <= 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 , -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 0 ms 332 KB Output is correct
2 Correct 4 ms 6860 KB Output is correct
3 Correct 4 ms 6656 KB Output is correct
4 Correct 4 ms 6732 KB Output is correct
5 Correct 4 ms 6732 KB Output is correct
6 Correct 4 ms 6860 KB Output is correct
7 Correct 2 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 332 KB Output is correct
2 Correct 4 ms 6860 KB Output is correct
3 Correct 4 ms 6656 KB Output is correct
4 Correct 4 ms 6732 KB Output is correct
5 Correct 4 ms 6732 KB Output is correct
6 Correct 4 ms 6860 KB Output is correct
7 Correct 2 ms 332 KB Output is correct
8 Correct 149 ms 1296 KB Output is correct
9 Correct 154 ms 9484 KB Output is correct
10 Correct 164 ms 9576 KB Output is correct
11 Correct 151 ms 1328 KB Output is correct
12 Correct 149 ms 1884 KB Output is correct
13 Correct 156 ms 1728 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 332 KB Output is correct
2 Correct 4 ms 6860 KB Output is correct
3 Correct 4 ms 6656 KB Output is correct
4 Correct 4 ms 6732 KB Output is correct
5 Correct 4 ms 6732 KB Output is correct
6 Correct 4 ms 6860 KB Output is correct
7 Correct 2 ms 332 KB Output is correct
8 Correct 149 ms 1296 KB Output is correct
9 Correct 154 ms 9484 KB Output is correct
10 Correct 164 ms 9576 KB Output is correct
11 Correct 151 ms 1328 KB Output is correct
12 Correct 149 ms 1884 KB Output is correct
13 Correct 156 ms 1728 KB Output is correct
14 Incorrect 116 ms 9208 KB Output isn't correct
15 Halted 0 ms 0 KB -