Submission #954248

# Submission time Handle Problem Language Result Execution time Memory
954248 2024-03-27T13:52:08 Z vjudge1 Deda (COCI17_deda) C++17
0 / 140
393 ms 11208 KB
#include <bits/stdc++.h>
using namespace std;
#define ishowspeed ios::sync_with_stdio(0),cin.tie(0);
#define int long long
#define MXN 200005
#define cl(x) (x<<1)
#define cr(x) (x<<1)+1
int seg[MXN*4+5],arr[MXN];
int searchb = 1e18;
int ansl = 1e18;
int query(int id,int l,int r,int sl,int sr){
    if(sl<=l&&r<=sr) {
        if(seg[id] <= searchb)
        ansl = min(ansl,l);
        return seg[id];
    }
    int mid=(l+r)>>1,res=1e18;
    if(sl<=mid){
        int x = query(cl(id),l,mid,sl,sr);
        res = min(res,x);
        // if(x <= searchb){
        //     ansl = min(ansl,l);
        // }
    } 
    if(mid<sr){
        int x = query(cr(id),mid+1,r,sl,sr);
        res = min(res,x);
        // if(x <= searchb){
        //     ansl = min(ansl,mid+1);
        // }
    }  
    return res;
}
void pull(int id){
    seg[id] = min(seg[cl(id)] , seg[cr(id)]);
}
void update(int id,int l,int r,int x,int v){
    if(l==r){
        if(seg[id] == 1e18) seg[id] = v;
        else seg[id] = v;
        return;
    }
    int mid=(l+r)>>1;
    if(x<=mid){
        update(cl(id),l,mid,x,v);    
    }
    if(mid<x){
        update(cr(id),mid+1,r,x,v);  
    }
    pull(id);
}
void build(int id,int l,int r){
    if(l==r){
        seg[id]=arr[l];
        return;
    }
    int mid=(l+r)>>1;
    build(cl(id),l,mid);
    build(cr(id),mid+1,r);
    pull(id);
}
signed main(){
    int n,q,x,L,R;
    cin >> n >> q;
    L = 1;
    R = n;
    for(int i = 1;i <= n;i++){
        arr[i] = 1e18;
    }
    build(1,L,R);
    // for(int i = 0; i < 50;i++){
    //     cout << seg[i]<<' ';
    // }
    char o;
    int a,b;
    while(q--){
        cin >> o >> a >> b;
        if(o == 'M'){
            update(1,L,R,b,a);
        }
        else {
            searchb = a;
            ansl = 1e18;
            int rs = query(1,1,R,b,R);
            if(rs <= searchb){
                // cout << rs << '\n';
                cout << ansl << '\n';
            }
            else cout <<  "-1\n";
        }
    }
}

Compilation message

deda.cpp: In function 'int main()':
deda.cpp:63:13: warning: unused variable 'x' [-Wunused-variable]
   63 |     int n,q,x,L,R;
      |             ^
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2396 KB Output isn't correct
2 Incorrect 1 ms 2492 KB Output isn't correct
3 Incorrect 8 ms 2396 KB Output isn't correct
4 Incorrect 393 ms 11208 KB Output isn't correct
5 Incorrect 315 ms 8680 KB Output isn't correct
6 Incorrect 312 ms 10832 KB Output isn't correct
7 Incorrect 327 ms 11088 KB Output isn't correct