結果
問題 |
No.1486 ロボット
|
ユーザー |
![]() |
提出日時 | 2021-07-14 17:59:44 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 12 ms / 2,000 ms |
コード長 | 753 bytes |
コンパイル時間 | 1,464 ms |
コンパイル使用メモリ | 168,524 KB |
実行使用メモリ | 7,168 KB |
最終ジャッジ日時 | 2024-07-03 18:09:06 |
合計ジャッジ時間 | 2,374 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { long long A, B, C, D, E; cin >> A >> B >> C >> D >> E; int ab = A + B; int cd = C + D; int lcm = ab / __gcd( ab, cd ) * cd; vector<int> v( lcm ); for( int i = 0; i < lcm; i++ ) { if( i % ab < A ) v[i] = 1; } for( int i = 0; i < lcm; i++ ) { if( i % cd < C ) v[i] &= 1; else v[i] = 0; } int cnt = 0; for( int i = 0; i < lcm; i++ ) { if( v[i] ) cnt++; } int ans = E / lcm * cnt; int r = E % lcm; vector<int> vv( r ); for( int i = 0; i < r; i++ ) { if( i % ab < A ) vv[i] = 1; } for( int i = 0; i < r; i++ ) { if( i % cd < C ) vv[i] &= 1; else vv[i] = 0; } cnt = 0; for( int i = 0; i < r; i++ ) { if( vv[i] ) cnt++; } ans += cnt; cout << ans << endl; }