Submission #20965

#TimeUsernameProblemLanguageResultExecution timeMemory
20965kdh9949Semiexpress (JOI17_semiexpress)C++14
100 / 100
16 ms7172 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n, m, k, cnt[3010]; ll A, B, C, T, a[3010], ans; vector<ll> c[3010]; ll get(int x, int y){ return (y < c[x].size()) ? c[x][y] : 0; } int main(){ scanf("%d%d%d%lld%lld%lld%lld", &n, &m, &k, &A, &B, &C, &T); n--; for(int i = 1; i <= m; i++){ scanf("%lld", a + i); a[i]--; } a[m + 1] = n + 1; for(int i = 1; i <= m; i++){ ll t = T - B * a[i]; ll p = a[i]; while(t >= 0 && p < a[i + 1] && c[i].size() <= k - m){ c[i].push_back(min(a[i + 1] - p, (t / A) + 1)); p += ((t / A) + 1); t -= ((t / A) + 1) * C; } } for(int i = 1; i <= m; i++) ans += get(i, 0); fill(cnt + 1, cnt + m + 1, 1); for(int i = 0; i < k - m; i++){ ll mx = get(1, cnt[1]), mi = 1; for(int j = 2; j <= m; j++){ if(mx < get(j, cnt[j])){ mx = get(j, cnt[j]); mi = j; } } ans += mx; cnt[mi]++; } printf("%lld\n", ans - 1); }

Compilation message (stderr)

semiexpress.cpp: In function 'll get(int, int)':
semiexpress.cpp:9:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 ll get(int x, int y){ return (y < c[x].size()) ? c[x][y] : 0; }
                                 ^
semiexpress.cpp: In function 'int main()':
semiexpress.cpp:18:47: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while(t >= 0 && p < a[i + 1] && c[i].size() <= k - m){
                                               ^
semiexpress.cpp:12:61: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%d%lld%lld%lld%lld", &n, &m, &k, &A, &B, &C, &T); n--;
                                                             ^
semiexpress.cpp:13:51: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i = 1; i <= m; i++){ scanf("%lld", a + i); a[i]--; }
                                                   ^

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...