답안 #524181

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
524181 2022-02-08T18:26:14 Z nickmet2004 Simple game (IZhO17_game) C++11
49 / 100
160 ms 9548 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 , -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 , +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 (){
      |  ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 332 KB Output is correct
2 Correct 4 ms 6852 KB Output is correct
3 Correct 4 ms 6604 KB Output is correct
4 Correct 4 ms 6692 KB Output is correct
5 Correct 4 ms 6732 KB Output is correct
6 Correct 4 ms 6860 KB Output is correct
7 Correct 3 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 332 KB Output is correct
2 Correct 4 ms 6852 KB Output is correct
3 Correct 4 ms 6604 KB Output is correct
4 Correct 4 ms 6692 KB Output is correct
5 Correct 4 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 148 ms 1308 KB Output is correct
9 Correct 154 ms 9548 KB Output is correct
10 Correct 154 ms 9444 KB Output is correct
11 Correct 155 ms 1312 KB Output is correct
12 Correct 146 ms 1888 KB Output is correct
13 Correct 160 ms 1732 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 332 KB Output is correct
2 Correct 4 ms 6852 KB Output is correct
3 Correct 4 ms 6604 KB Output is correct
4 Correct 4 ms 6692 KB Output is correct
5 Correct 4 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 148 ms 1308 KB Output is correct
9 Correct 154 ms 9548 KB Output is correct
10 Correct 154 ms 9444 KB Output is correct
11 Correct 155 ms 1312 KB Output is correct
12 Correct 146 ms 1888 KB Output is correct
13 Correct 160 ms 1732 KB Output is correct
14 Incorrect 114 ms 9208 KB Output isn't correct
15 Halted 0 ms 0 KB -