結果
問題 |
No.3068 Speedrun (Hard)
|
ユーザー |
|
提出日時 | 2025-03-21 21:58:31 |
言語 | C++17(clang) (17.0.6 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,582 bytes |
コンパイル時間 | 5,278 ms |
コンパイル使用メモリ | 173,656 KB |
実行使用メモリ | 5,888 KB |
最終ジャッジ日時 | 2025-03-21 21:58:46 |
合計ジャッジ時間 | 8,035 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 1 TLE * 1 |
other | -- * 32 |
ソースコード
#pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #pragma GCC optimization ("unroll-loops") #include <bits/stdc++.h> using namespace std; long long int A[4]; long long int B[4]; long long int N,T; map <pair<long long int,long long int>,int> memo; int main(void) { cin.tie(0); ios::sync_with_stdio(false); cin >> A[0] >> A[1] >> A[2] >> A[3] >> N; cin >> B[0] >> B[1] >> B[2] >> B[3] >> T; pair <long long int,long long int> p; for(int x=0;x<=A[2];x++){ if(x > N) break; if(x*B[2] > T) break; for(int y=0;y<=A[3];y++) { if(y > N) break; if(x+y > N) break; long long int X = x + y; long long int Y = B[2]*x + B[3]*y; if(Y > T) break; p.first = X; p.second = Y; if(memo.find(p)==memo.end()) memo[p] = x; } } for(int x=0;x<=A[0];x++){ if(x > N) break; if(x*B[0] > T) break; for(int y=0;y<=A[1];y++) { if(y > N) break; if(x+y > N) break; long long int X = x + y; long long int Y = B[0]*x + B[1]*y; if(Y > T) break; p.first = X; p.second = Y; if(memo.find(p)!=memo.end()) { int a3 = memo[p]; int a4 = N - a3 - x - y; int a1 = x; int a2 = y; cout << a1 << ' ' << a2 << ' ' << a3 << ' ' << a4 << '\n'; return 0; } } } return 0; }