Submission #1161765

#TimeUsernameProblemLanguageResultExecution timeMemory
1161765irmuunFish 3 (JOI24_fish3)C++20
9 / 100
2095 ms5164 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll n,d; cin>>n>>d; ll c[n+5]; for(ll i=1;i<=n;i++){ cin>>c[i]; } ll q; cin>>q; ll a[n+5]; while(q--){ ll l,r; cin>>l>>r; for(ll i=l;i<=r;i++){ a[i]=c[i]; } ll ans=0,tot=0; for(ll i=l;i<=r;i++){ a[i]-=tot; if(a[i]<0){ ans=-1; break; } tot+=a[i]%d; } if(ans==-1){ cout<<ans<<"\n"; continue; } vector<ll>v; for(ll i=r;i>=l;i--){ a[i]/=d; ans+=a[i]; if(v.empty()||a[i]<a[v.back()]){ v.pb(i); } } reverse(all(v)); ll last=l-1,sum=0; for(ll i:v){ a[i]-=sum; ans-=a[i]*(r-last); last=i; sum+=a[i]; } cout<<ans<<"\n"; } }
#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...