Submission #730085

#TimeUsernameProblemLanguageResultExecution timeMemory
730085thimote75City (BOI06_city)C++14
90 / 100
1079 ms16820 KiB
#include <bits/stdc++.h> using namespace std; #define num long long #define vn vector<num> #define ph pair<num, pair<int, int>> #define sp priority_queue<ph, vector<ph>, greater<ph>> #define stage second.second #define dist second.first #define cost first vn costs; num N, T; int K; sp current; ph next (ph &x) { int s = x.stage + 1; int d = x.dist; num c = d * T + costs[s]; return { c, { d, s } }; } ph create (int d) { return { d * T + costs[0], { d, 0 } }; } num count (int d) { return 4 * d + 4; } int main () { cin >> N >> T >> K; costs.resize(K); for (int i = 0; i < K; i ++) cin >> costs[i]; current.push(create(0)); num ans = 0; int i = 0; while (N > 0) { ph res = current.top(); current.pop(); if (res.stage + 1 != K) current.push(next(res)); if (res.stage == 0) current.push(create(res.dist + 1)); num size = min(count(res.dist), N); N -= size; ans += size * res.cost; } cout << ans << endl; }

Compilation message (stderr)

city.cpp: In function 'int main()':
city.cpp:42:9: warning: unused variable 'i' [-Wunused-variable]
   42 |     int i = 0;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...