제출 #1181603

#제출 시각아이디문제언어결과실행 시간메모리
1181603gabyferaqFountain (eJOI20_fountain)C++20
0 / 100
1595 ms3636 KiB
#include<bits/stdc++.h> using namespace std; vector<long> dmt,cap, sgtf; long query(long a,long b) { long pos=a-1; while(b-cap[pos]>0) { b-=cap[pos], pos=sgtf[pos]; } if(pos==-1) return 0; else return pos+1; } void solve() { long n,q; cin>>n>>q; dmt.assign(n+1,0); cap.resize(n); sgtf.resize(n); long a,b; for(int i=0; i<n; i++) { cin>>a>>b; dmt[i]=a,cap[i]=b; } stack<long> pila; for(int i=n-1; i>=0; i--) { pila.push(i+1); if(dmt[pila.top()]==0) { sgtf[i]=-1, pila.pop(); } else { if(dmt[i]<dmt[pila.top()]) sgtf[i]=pila.top(); else { while(!pila.empty()&&(dmt[i]>dmt[pila.top()]||dmt[pila.top()]==0)) { pila.pop(); } if(pila.empty()) sgtf[i]=-1; else sgtf[i]=pila.top(); } } } while(q--) { cin>>a>>b; cout<<query(a,b)<<endl; } } int main() { solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...