제출 #330289

#제출 시각아이디문제언어결과실행 시간메모리
330289Kevin_Zhang_TWSemiexpress (JOI17_semiexpress)C++17
48 / 100
1 ms620 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define AI(i) begin(i), end(i) #define pb emplace_back #ifdef KEV #define DE(args...) kout("[ " + string(#args) + " ] = ", args) void kout() { cerr << endl; } template <class T, class ...U> void kout(T a, U ...b) { cerr << a << ' ', kout(b...); } template <class T> void debug(T l, T r) { while (l != r) cerr << *l << " \n"[next(l) == r], ++l; } #else #define DE(...) 0 #define debug(...) 0 #endif template <class T> bool chmin(T &a, T b) { return b < a ? (a = b, true) : false; } template <class T> bool chmax(T &a, T b) { return a < b ? (a = b, true) : false; } #define int ll const int MAX_N = 3010; int n, m, k; ll a, b, c, T; ll s[MAX_N]; int solve() { int ad = k - m, res = 0; vector<int> obj; assert(a > c && c > b); vector<int> all; for (int i = 1;i <= m;++i) { ll et = (s[i] - 1) * b; if (et > T) break; if (i == m) { ++res; break; } int id = s[i]; ll ex = (T - et) / a; if (id + ex >= s[i+1] - 1) { res += s[i+1] - s[i]; continue; } res += ex + 1; id += ex + 1; et += c * (ex + 1); int cnt = ad; while ( cnt-- && id < s[i+1] ) { if (et > T) break; ll ex = (T - et) / a; if (id + ex < s[i+1]) { // while (obj.size() && obj.back() > ex + 1 && ad) // --ad, res += obj.back(), obj.pop_back(); // if (ad == 0) break; //res += ex + 1; id += ex + 1; et += c * (ex + 1); all.pb(ex + 1); } else { obj.pb( s[i+1] - id ); DE(obj.back(), all.back()); assert(all.empty() || obj.back() <= all.back()); break; } } //sort(AI(obj)); } obj.insert(end(obj), AI(all)); sort(AI(obj), greater<>()); chmin(ad, (int)obj.size()); for (int i = 0;i < ad;++i) res += obj[i]; return res - 1; } int32_t main() { ios_base::sync_with_stdio(0), cin.tie(0); cin >> n >> m >> k >> a >> b >> c >> T; for (int i = 1;i <= m;++i) cin >> s[i]; cout << solve() << '\n'; }

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

semiexpress.cpp: In function 'll solve()':
semiexpress.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
semiexpress.cpp:75:5: note: in expansion of macro 'DE'
   75 |     DE(obj.back(), all.back());
      |     ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...