結果
| 問題 |
No.1486 ロボット
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-04-23 22:21:54 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 18 ms / 2,000 ms |
| コード長 | 1,372 bytes |
| コンパイル時間 | 2,761 ms |
| コンパイル使用メモリ | 194,700 KB |
| 最終ジャッジ日時 | 2025-01-21 00:05:17 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 17 |
ソースコード
#include <bits/stdc++.h>
#define all(v) (v).begin(), (v).end()
#define rep(i, n) for (ll i = 0; i < (ll)(n); ++i)
#define rep2(i, n, m) for (ll i = n; i <= (ll)(m); ++i)
#define rep3(i, n, m) for (ll i = n; i >= (ll)(m); --i)
using namespace std;
using ld = long double;
using ll = long long int;
using pl = pair<ll, ll>;
using vl = vector<ll>;
using vvl = vector<vl>;
using vpl = vector<pl>;
template <class T> using pqg = priority_queue<T, vector<T>, greater<T>>;
template <class T> using pq = priority_queue<T>;
template <class T> T chmax(T &a, const T &b) { return a = max(a, b); }
template <class T> T chmin(T &a, const T &b) { return a = min(a, b); }
const ll INF = 100000000000000000;
const ll MAX = 500005;
const ll MOD = 1000000007;
// const ll MOD = 998244353;
int main(void) {
ll a, b, c, d, x;
cin >> a >> b >> c >> d >> x;
ll e = a + b, f = c + d;
ll roop_cost = lcm(e, f);
vl imos(roop_cost + 1, 0);
for (int i = 0; i < roop_cost; i += a + b) {
++imos[i];
--imos[i + a];
}
for (int i = 0; i < roop_cost; i += c + d) {
++imos[i];
--imos[i + c];
}
rep(i, roop_cost) imos[i + 1] += imos[i];
vl imos_sum(imos.size() + 1, 0);
rep(i, imos.size()) imos_sum[i + 1] += imos_sum[i] + (imos[i] == 2);
ll ans = ((x / roop_cost) * imos_sum.back()) + imos_sum[x % roop_cost];
cout << ans << endl;
return (0);
}