Submission #1128745

#TimeUsernameProblemLanguageResultExecution timeMemory
1128745icecreamSimple game (IZhO17_game)C++20
22 / 100
1090 ms3332 KiB
// アイスクリーム #include <bits/stdc++.h> #ifndef alks #pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt") #endif #pragma GCC optimize("O3,unroll-loops") #define ll long long #define int ll #define Yes cout<<"YES\n"; return; #define No cout<<"NO\n"; return; #define yes cout<<"Yes\n"; return; #define no cout<<"No\n"; return; #define wrans cout<<"-1\n"; return; using namespace std; const int N=1e6+100; const int M=1e6+100; const int mod1=998244353; const int mod=1e9+7; const int INF=1e18; const long double eps=1e-12; const string ab="abcdefghijklmnopqrstuvwxyz"; const string AB="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int n,q; int a[N]; int t[N*4]; int f(int a,int b,int ans){ if(a<ans && b>ans){ return 1; } if(a>ans && b<ans){ return 1; } return 0; } void build(int v,int tl,int tr){ if(tl==tr){ t[v]=0; return; } int mid=(tl+tr)>>1ll; build(v*2,tl,mid); build(v*2+1,mid+1,tr); t[v]=(t[v*2]+t[v*2+1]); } void upd(int v,int tl,int tr,int pos,int x){ if(tl==tr){ t[v]=f(a[tl],a[tl+1],x); return; } int mid=(tl+tr)>>1ll; if(pos<=mid){ upd(v*2,tl,mid,pos,x); } else{ upd(v*2+1,mid+1,tr,pos,x); } t[v]=(t[v*2]+t[v*2+1]); } int get(int v,int tl,int tr,int l,int r){ if(tl>r || tr<l){ return 0ll; } if(l<=tl && r>=tr){ return t[v]; } int mid=(tl+tr)>>1ll; int sum=get(v*2,tl,mid,l,r); int sum1=get(v*2+1,mid+1,tr,l,r); return (sum+sum1); } void alikosh(){ cin>>n>>q; for(int i=1;i<=n;i++){ cin>>a[i]; } build(1,1,n-1); for(int t,pos,x;q--;){ cin>>t; if(t==1){ cin>>pos>>x; a[pos]=x; if(pos>1){ upd(1,1,n-1,pos-1,x); } if(pos<n){ upd(1,1,n-1,pos,x); } upd(1,1,n-1,pos,x); continue; } cin>>x; int sum=0; for(int i=1;i<n;i++){ sum+=f(a[i],a[i+1],x); } cout<<sum<<"\n"; } } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int alikosh1=1; // cin>>alikosh1; for(int i=1;i<=alikosh1;i++){ // cout<<"Case "<<i<<": "; alikosh(); } } //, Ice \ \
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...