제출 #498186

#제출 시각아이디문제언어결과실행 시간메모리
498186KarabasanFountain (eJOI20_fountain)C++17
60 / 100
1551 ms15576 KiB
#include <bits/stdc++.h> #define ll long long #define fast1 ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); #define endl "\n" using namespace std; #pragma GCC optimize("Ofast") #pragma GCC target("fma,sse4,sse2,avx") #pragma GCC optimize("unroll-loops") int n,m,k,q; int d[100005]; int c[100005]; int pre[100005]; vector<pair<int,int> > p[200005]; int mark[100005]; int nextt[100005]; int cevap[200005]; void solve() { cin>>n>>q; for(int i=1;i<=n;i++) cin>>d[i]>>c[i]; for(int i=1;i<=q;i++) { int a,b; cin>>a>>b; p[a].push_back({b,i}); } stack<int> st; st.push(1); for(int i=2;i<=n;i++) { while(!st.empty()&&d[st.top()]<d[i]) { nextt[st.top()]=i; st.pop(); } st.push(i); } for(int u=1;u<=n;u++) { vector<int> v; vector<int> ind; if(mark[u]) continue; v.push_back(0); v.push_back(c[u]); ind.push_back(0); ind.push_back(u); int g=nextt[u]; while(g!=0) { ind.push_back(g); v.push_back(v[v.size()-1]+c[g]); g=nextt[g]; } for(int i=1;i<ind.size();i++) { if(mark[ind[i]]) continue; mark[ind[i]]=1; for(int j=0;j<p[ind[i]].size();j++) { int a=ind[lower_bound(v.begin()+i,v.end(),p[ind[i]][j].first+v[i-1])-v.begin()]; if(a<=n) cevap[p[ind[i]][j].second]=a; else cevap[p[ind[i]][j].second]=0; } } } for(int i=1;i<=q;i++) cout<<cevap[i]<<endl; } signed main() { fast1 int t=1; while(t--) { solve(); } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

fountain.cpp: In function 'void solve()':
fountain.cpp:57:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |         for(int i=1;i<ind.size();i++)
      |                     ~^~~~~~~~~~~
fountain.cpp:62:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |             for(int j=0;j<p[ind[i]].size();j++)
      |                         ~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...