제출 #321667

#제출 시각아이디문제언어결과실행 시간메모리
321667Kevin_Zhang_TWSemiexpress (JOI17_semiexpress)C++17
18 / 100
1 ms364 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; int s[MAX_N]; int solve() { int ad = k - m, res = 0; #define ll __int128 vector<int> obj; for (int i = 1;i <= m;++i) { ll et = (s[i] - 1) * b; //DE(i, et); if (et > T) break; if (i == m) { ++res; break; } int id = s[i]; //DE(s[i], ad, et); for (; (ad > 0 || ad == 0 && id == s[i]) && id < s[i+1];) { ll ex = (T - et) / a; //DE(id, ex, et); if (et > T) break; if (id + ex < s[i+1]) { if (id != s[i]) --ad; res += ex + 1; id += ex + 1; et += c * ex + c; //DE(res, ad); } else { cerr << "no take\n"; obj.pb( s[i+1] - id ); assert(s[i+1] > id); if (id == s[i]) res += obj.back(), obj.pop_back(); break; } } } sort(AI(obj)); while (ad-- && obj.size()) res += obj.back(), obj.pop_back(); 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:47:29: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   47 |   for (; (ad > 0 || ad == 0 && id == s[i]) && id < s[i+1];) {
      |                     ~~~~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...