結果
問題 | No.2099 [Cherry Alpha B] Time Machine |
ユーザー |
![]() |
提出日時 | 2022-10-14 21:55:55 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 859 bytes |
コンパイル時間 | 1,982 ms |
コンパイル使用メモリ | 175,240 KB |
実行使用メモリ | 427,176 KB |
最終ジャッジ日時 | 2024-06-26 13:51:42 |
合計ジャッジ時間 | 13,231 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 3 TLE * 3 -- * 66 |
ソースコード
#include <bits/stdc++.h> using namespace std; const int MX = 10000000; int main(){ int T; cin >> T; int X, A; cin >> X >> A; int Y, B; cin >> Y >> B; vector<long long> d(MX * 2 + 1, -1); priority_queue<pair<long long, int>, vector<pair<long long, int>>, greater<tuple<long long, int>>> pq; pq.push(make_pair(0, MX)); while (!pq.empty()){ long long c = pq.top().first; int v = pq.top().second; pq.pop(); if (d[v] == -1){ d[v] = c; if (v < MX * 2){ if (d[v + 1] == -1){ pq.push(make_pair(c + 1, v + 1)); } } if (v + A <= MX * 2){ if (d[v + A] == -1){ pq.push(make_pair(c + X, v + A)); } } if (v - B >= 0){ if (d[v - B] == -1){ pq.push(make_pair(c + Y, v - B)); } } } } cout << d[MX + T] << endl; }