답안 #472881

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
472881 2021-09-14T12:39:36 Z MamdouhN Deda (COCI17_deda) C++14
60 / 140
1000 ms 1780 KB
#include<bits/stdc++.h>
using namespace std;
//#define int long long
#define endl "\n"

int seg[600005];
int uwu = 927168292;
void update(int idx,int st,int en,int i,int value)
{
    if(en<i||st>i)return;
    if(st==en)
    {
        seg[idx] = value;
        return;
    }
    int mid = (st+en)/2;
    update(idx*2,st,mid,i,value);
    update(idx*2+1,mid+1,en,i,value);
    seg[idx]=min(seg[idx*2],seg[idx*2+1]);
}

int query(int idx,int st,int en,int qs,int qe,int y)
{
    if(en<qs||st>qe)return uwu;
    if(seg[idx]>y)return uwu;
    if(st==en)return (seg[idx]==0?uwu:st);
    int mid = (st+en)/2;
    int left  = query(idx*2,st,mid,qs,qe,y);
    int right = query(idx*2+1,mid+1,en,qs,qe,y);
    return min(left,right);
}

main()
{
    int n,q;
    cin>>n>>q;
    while(q--)
    {
        char c;
        int a,b;
        cin>>c>>a>>b;
        if(c=='M')
        {
            update(1,0,n,b,a);
        }
        else
        {
            int ans = query(1,0,n,b,n,a);
            cout<<(ans==uwu ? -1:ans)<<endl;
        }
    }
}

Compilation message

deda.cpp:33:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   33 | main()
      | ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 2 ms 204 KB Output is correct
3 Correct 35 ms 308 KB Output is correct
4 Execution timed out 1088 ms 344 KB Time limit exceeded
5 Execution timed out 1092 ms 1348 KB Time limit exceeded
6 Execution timed out 1046 ms 1732 KB Time limit exceeded
7 Execution timed out 1090 ms 1780 KB Time limit exceeded