제출 #152876

#제출 시각아이디문제언어결과실행 시간메모리
152876Segtree모임들 (IOI18_meetings)C++14
19 / 100
898 ms2296 KiB
#include<iostream> #include<algorithm> #include<vector> #include<stack> using namespace std; typedef long long ll; #define mod 1000000007 vector<ll> minimum_costs(vector<int> H,vector<int> L,vector<int> R){ vector<ll> anss; for(int i=0;i<L.size();i++){ ll res[5010]; stack<pair<ll,ll> >s; ll sum=0; for(int k=L[i];k<=R[i];k++){ ll cnt=0; while(!s.empty()&&s.top().first<=H[k]){ cnt+=s.top().second; sum-=s.top().first*s.top().second; s.pop(); } s.push(make_pair(H[k],cnt+1)); sum+=H[k]*(cnt+1); res[k]=sum; } while(!s.empty()){ s.pop(); } sum=0; for(int k=R[i];k>=L[i];k--){ ll cnt=0; while(!s.empty()&&s.top().first<=H[k]){ cnt+=s.top().second; sum-=s.top().first*s.top().second; s.pop(); } s.push(make_pair(H[k],cnt+1)); sum+=H[k]*(cnt+1); res[k]+=sum; } ll ans=1e17; for(int k=L[i];k<=R[i];k++){ ans=min(ans,res[k]-H[k]); } anss.push_back(ans); } return anss; }/* int main(){ ll n,q; cin>>n>>q; vector<int> H(n),L(q),R(q); for(int i=0;i<n;i++)cin>>H[i]; for(int i=0;i<q;i++)cin>>L[i]>>R[i]; vector<ll> ans=minimum_costs(H,L,R); for(int i=0;i<q;i++)cout<<ans[i]<<endl; return 0; }*/

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

meetings.cpp: In function 'std::vector<long long int> minimum_costs(std::vector<int>, std::vector<int>, std::vector<int>)':
meetings.cpp:10:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<L.size();i++){
                 ~^~~~~~~~~
#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...