結果

問題 No.3068 Speedrun (Hard)
コンテスト
ユーザー tobbie
提出日時 2025-04-07 22:40:17
言語 C++17
(gcc 15.3.0 + boost 1.92.0 + ACL)
コンパイル:
g++-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -lm -std=c++17 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
WJ  
(最新)
AC  
(最初)
実行時間 -
コード長 844 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
最終ジャッジ日時 2026-11-10 16:02:13
ジャッジサーバーID
(参考情報)
judge4_0 / judge2_0
このコードへのチャレンジ
(要ログイン)

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
using namespace std;

#define rep(i, n) for (int i = 0; i < (int)n; i++)

int main() {
  vector<int> a(4);
  rep(i, 4) cin >> a[i];
  int n; cin >> n;
  vector<int> p(4);
  rep(i, 4) cin >> p[i];
  int t; cin >> t;
  for (int n1=0, t1=0; n1<=a[0] && t1<=t; n1++, t1+=p[0]) {
    int n2max = min(a[1], n - n1);
    int t2max = t - t1;
    for (int n2=0, t2=0; n2<=n2max && t2<=t2max; n2++, t2+= p[1]) {
      int n0 = n - (n1 + n2);
      int t0 = t - (t1 + t2);
      int n3 = 0, n4 = 0;
      if (p[2] == p[3]) {
	n3 = min(n0, a[2]);
	n4 = min(n0 - n3, a[3]);
      } else {
	n3 = min((t0 - n0*p[3])/(p[2] - p[3]), a[2]);
	n4 = min(n0 - n3, a[3]);
      }
      if (n3 >= 0 && n4 >= 0 && n3*p[2] + n4*p[3] == t0) {
	cout << n1 << " " << n2 << " " << n3 << " " << n4 << endl;
	return 0;
      }
    }
  }
  return 0;
}
0