Submission #1297549

#TimeUsernameProblemLanguageResultExecution timeMemory
1297549ibroooshDeda (COCI17_deda)C++20
140 / 140
272 ms5632 KiB
// #pragma GCC optimize("O3,unroll-loops") //#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include<bits/stdc++.h> #define ll long long #define int ll using namespace std; template<typename... T> void see(T&... args) { ((cin >> args), ...);} template<typename... T> void put(T&&... args) { ((cout << args << " "), ...);} template<typename... T> void putl(T&&... args) { ((cout << args << " "), ...); cout<<'\n';} #define error(args...) { string _s = #args; replace(_s.begin(), _s.end(), ',', ' '); stringstream _ss(_s); istream_iterator<string> _it(_ss); err(_it, args); } void err(istream_iterator<string> it) {} template<typename T, typename... Args> void err(istream_iterator<string> it, T a, Args... args) {cerr << *it << "=" << a << ", "; err(++it, args...);} #define du long double #define m_p make_pair #define pb push_back #define pii pair<int,int> #define piii pair<pii,int> #define vi vector<int> #define vii vector<pii> #define viii vector<pair<int,pii> > #define si set<int> #define sii multiset<pii> #define siii set<pair<int,pii> > #define F first #define S second #define pre precision #define sz size() #define all(x) x.begin(),x.end() #ifndef ONLINE_JUDGE #define OK cout << __LINE__ << "| "<< "---------------------------OK-----------------------" << endl; #define deb(x) cout << __LINE__ << "| "<< #x << " = " << x << endl; #else #define OK #define deb(x) #endif #define int long long #define cn continue #define rt return #define nl cout<<'\n' #define OPEN freopen ("exam.in","r" , stdin), freopen ("exam.out","w",stdout) const ll mod=1e9+7; const ll inf=1e18; const du PI=3.14; const int N=1e6; const int dx[]={-1,0,1,0}; const int dy[]={0,-1,0,1}; ll f[N]; ll phi(ll n){ ll res = n; for(ll i = 2; i * i <= n; i ++){ if(n % i == 0){ while(n % i == 0) n /= i; res -= res / i; } } if(n > 1) res -= res / n; return res; } ll bp(ll a,ll b){ ll res=1; while(b){ if(b&1)res=(res%mod)*(a%mod); res%=mod; a=a*a%mod; b/=2ll; } return res; } ll mult(ll a,ll b){ return (1ll*a*b)%mod; } ll di(ll a,ll b){ return mult(a,bp(b,phi(mod)-1)); } ll add (ll a,ll b){ a+=b; if(a>=mod)a-=mod; return a; } ll sub(ll a,ll b){ a-=b; if(a<0)a+=mod; return a; } int n,q,t[N*4],x,y; void build(int v,int l,int r){ if(l==r){ t[v]=1e9; rt; } int m=(l+r)/2; build(v*2,l,m); build(v*2+1,m+1,r); t[v]=min(t[v*2],t[v*2+1]); } void upd(int v,int l,int r,int p,int x){ if(l==r){ t[v]=x; rt; } int m=(l+r)/2; if(p<=m){ upd(v*2,l,m,p,x); } else{ upd(v*2+1,m+1,r,p,x); } t[v]=min(t[v*2],t[v*2+1]); } int get(int v,int l,int r,int tl,int tr,int x){ if(tl>r or l>tr){ return -1; } if(t[v]>x){ return -1; } if(tl==tr){ return tl; } int m=(tl+tr)/2; int left=get(v*2,l,r,tl,m,x); if(left!=-1){ return left; } return get(v*2+1,l,r,m+1,tr,x); } void Teemka_abi(){ cin>>n>>q; build(1,1,n); while(q--){ char s; cin>>s; cin>>x>>y; if(s=='M'){ upd(1,1,n,y,x); } else{ cout<<get(1,y,n,1,n,x); nl; } } } signed main(){ // OPEN; int tt=1; // cin>>tt; while(tt--){ Teemka_abi(); nl; } }

Compilation message (stderr)

deda.cpp:41: warning: "int" redefined
   41 | #define int long long
      | 
deda.cpp:5: note: this is the location of the previous definition
    5 | #define int ll
      |
#Verdict Execution timeMemoryGrader output
Fetching results...