Submission #56464

#TimeUsernameProblemLanguageResultExecution timeMemory
56464ramchandraLollipop (POI11_liz)C++14
82 / 100
2075 ms100408 KiB
#include <bits/stdc++.h> #define in(x) ll x;cin>>x; #define al(x) x.begin(),x.end() #define vc vector #define fo(i,a,b) for(ll i=a;i<b;i++) using namespace std; using ll = int; // mem int main(){ cin.sync_with_stdio(false); cout.sync_with_stdio(false); ios::sync_with_stdio(false); in(n);in(m); vc<ll> ar(2*n+50,-1); vc<ll> ps(2*n+50,-1); vc<ll> is(2*n+50,-1); ll cnt = 0; ll fst = -1; fo(i,0,n){ char c;cin>>c; bool tp = (c=='T'); if(fst==-1 && !tp){fst = cnt;} ar[cnt]=i; ps[i]=cnt; cnt++; cnt+=tp; } if(fst==-1){fst = cnt;} ar[cnt] = n; ps[n] = cnt; ll sz = ar[fst]; ll c[2] = {2,1}; fo(i,ar[fst]-1,n){ ll v = ps[i+1]-fst; //cout<<v<<" "<<c[v%2]<<endl; for(ll j = max(v,c[v%2]); j <= min((ll)(2*n),v+2*sz); j+=2){ //assert(is[j] == -1); is[j] = i; //cerr<<"oh "<<j<<" "<<i<<endl; } c[v%2] = v+2*sz+2; } /*fo(i,1,sz+1){ is[2*i] = ar[fst]-1; }*/ fo(z,0,m){ in(k); ll l=-1,r=-1; if(fst+k<cnt){ if(ar[fst+k]==-1){ l = ar[fst]+1; r = ar[fst+k-1]; } else{ l = ar[fst]; r = ar[fst+k]-1; } } else { if(is[k]!=-1){ r = is[k]; l = ar[ps[r+1]-k]; } } if(l!=-1){ cout<<l+1<<" "<<r+1<<endl; } else { cout<<"NIE"<<endl; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...