Submission #425611

#TimeUsernameProblemLanguageResultExecution timeMemory
425611MarcoMeijerMeetings (IOI18_meetings)C++14
0 / 100
3170 ms2284 KiB
#include "meetings.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> ii; typedef vector<ll> vll; typedef vector<int> vi; typedef vector<ii> vii; #define REP(a,b,c) for(int a=int(b); a<int(c); a++) #define REV(a,b,c) for(int a=int(c-1); a>=int(b); a--) #define RE(a,b) REP(a,0,b) #define RE1(a,b) REP(a,1,b+1) #define FOR(a,b) for(auto& a : b) #define pb push_back #define fi first #define se second #define all(a) a.begin(), a.end() vll minimum_costs(vi H, vi L, vi R) { int n = H.size(); int q = L.size(); vll C(q,0); RE(cq,q) { int l=L[cq], r=R[cq]; vll sm; sm.assign(r-l+1,0); ll res = 0; vi stck; REP(i,l,r+1) { while(!stck.empty() && H[stck.back()] <= H[i]) { int j = stck.back(); stck.pop_back(); res -= ll(i-j)*(ll)H[j]; res += ll(i-j)*(ll)H[i]; } res += H[i]; stck.pb(i); sm[i-l] += res; } res = 0; stck.clear(); REV(i,l,r+1) { while(!stck.empty() && H[stck.back()] <= H[i]) { int j = stck.back(); stck.pop_back(); res -= ll(j-i)*(ll)H[j]; res += ll(j-i)*(ll)H[i]; } res += H[i]; stck.pb(i); sm[i-l] += res; } REP(i,l,r+1) sm[i-l] -= H[i]; C[cq] = sm[0]; FOR(i,sm) C[cq] = min(C[cq],i); } return C; }

Compilation message (stderr)

meetings.cpp: In function 'vll minimum_costs(vi, vi, vi)':
meetings.cpp:22:7: warning: unused variable 'n' [-Wunused-variable]
   22 |   int n = H.size();
      |       ^
#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...