Submission #165197

#TimeUsernameProblemLanguageResultExecution timeMemory
165197theStaticMindDeda (COCI17_deda)C++14
140 / 140
170 ms4740 KiB
#include<bits/stdc++.h>
#define mp make_pair
#define pb push_back
#define ii pair<int,int>
#define all(x) (x).begin(),(x).end()
#define INF 100000000000000000
#define modulo 1000000007
#define mod 998244353
#define int long long int
using namespace std;

int32_t main(){
      ios_base::sync_with_stdio(false);
      cin.tie(NULL);
   //   freopen("q.gir","r",stdin);
   //   freopen("q.cik","w",stdout);
      int n,q;
      cin>>n>>q;
      int sq=sqrt(n);
      vector<int>no;
      for(int i=0;i<=n;i++)no.pb(i/sq);
      vector<int>Mo(no.back()+1,INF);
      vector<int>P(n+1,INF);
      for(int i=0;i<q;i++){
            char c;
            int x,y;
            cin>>c>>x>>y;
            if(c=='M'){
                  P[y]=x;
                  Mo[no[y]]=min(Mo[no[y]],x);
            }
            else{
                  int ind=y,ans=-1;
                  while(ind<=n&&no[ind]==no[ind-1]){
                        if(P[ind]<=x){
                              ans=ind;
                              break;
                        }
                        ind++;
                  }
                  if(ind<=n&&ans==-1){
                        int N=no[ind];
                        while(N<Mo.size()&&Mo[N]>x)N++;
                        if(N!=Mo.size()){
                              ind=N*sq;
                              while(ind<=n&&no[ind]==N){
                                    if(P[ind]<=x){
                                          ans=ind;
                                          break;
                                    }
                                    ind++;
                              }
                        }
                  }
                  cout<<ans<<"\n";
            }
      }
}

Compilation message (stderr)

deda.cpp: In function 'int32_t main()':
deda.cpp:43:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                         while(N<Mo.size()&&Mo[N]>x)N++;
                               ~^~~~~~~~~~
deda.cpp:44:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                         if(N!=Mo.size()){
                            ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...