제출 #321664

#제출 시각아이디문제언어결과실행 시간메모리
321664Kevin_Zhang_TWSemiexpress (JOI17_semiexpress)C++17
18 / 100
1 ms384 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; } const int MAX_N = 3010; int n, m, k; ll a, b, c, T; #define int ll int s[MAX_N]; int solve() { int ad = k - m, res = 0; vector<int> obj; for (int i = 1;i <= m;++i) { ll et = (s[i] - 1) * b; DE(i, et); if (et > T) break; cerr << "Solving\n"; if (i == m) { ++res; break; } int id = s[i]; DE(s[i], ad, et); for (int u = 0; (ad > 0 || ad == 0 && id == s[i]) && id < s[i+1]; ++u) { 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 ); if (id == s[i]) res += obj.back(), obj.pop_back(); break; } } } DE(res); DE(ad); debug(AI(obj)); 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:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
semiexpress.cpp:35:3: note: in expansion of macro 'DE'
   35 |   DE(i, et);
      |   ^~
semiexpress.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
semiexpress.cpp:44:3: note: in expansion of macro 'DE'
   44 |   DE(s[i], ad, et);
      |   ^~
semiexpress.cpp:46:38: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   46 |   for (int u = 0; (ad > 0 || ad == 0 && id == s[i]) && id < s[i+1]; ++u) {
      |                              ~~~~~~~~^~~~~~~~~~~~~
semiexpress.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
semiexpress.cpp:48:4: note: in expansion of macro 'DE'
   48 |    DE(id, ex, et);
      |    ^~
semiexpress.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
semiexpress.cpp:58:5: note: in expansion of macro 'DE'
   58 |     DE(res, ad);
      |     ^~
semiexpress.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
semiexpress.cpp:69:2: note: in expansion of macro 'DE'
   69 |  DE(res);
      |  ^~
semiexpress.cpp:14:17: warning: statement has no effect [-Wunused-value]
   14 | #define DE(...) 0
      |                 ^
semiexpress.cpp:70:2: note: in expansion of macro 'DE'
   70 |  DE(ad);
      |  ^~
semiexpress.cpp:15:20: warning: statement has no effect [-Wunused-value]
   15 | #define debug(...) 0
      |                    ^
semiexpress.cpp:71:2: note: in expansion of macro 'debug'
   71 |  debug(AI(obj));
      |  ^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...