結果
| 問題 |
No.3179 3 time mod
|
| コンテスト | |
| ユーザー |
Cafe1942
|
| 提出日時 | 2025-05-30 18:36:24 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 846 bytes |
| コンパイル時間 | 917 ms |
| コンパイル使用メモリ | 68,952 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2025-05-30 20:10:38 |
| 合計ジャッジ時間 | 3,945 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 29 WA * 12 |
ソースコード
#include <iostream>
using ll = long long;
using namespace std;
pair<ll, ll> func(ll a, ll b, ll c) {
if (b == 0) {
return { c / a,0 };
}
else {
pair<ll, ll>tmp;
tmp = func(b, a % b, c);
return{ tmp.second,tmp.first - (a / b) * tmp.second };
}
}
int main() {
ll N;
cin >> N;
ll P, Q, R;
cin >> P >> Q >> R;
ll A, B, C;
cin >> A >> B >> C;
pair<ll, ll> tmp;
tmp = func(P, Q, 1);
ll good0 = ((__int128_t)A * (__int128_t)Q * (__int128_t)tmp.second + (__int128_t)B * (__int128_t)P * (__int128_t)tmp.first) % (__int128_t)(P * Q);
tmp = func(P * Q, R, 1);
ll good = ((__int128_t)good0 * R * (__int128_t)tmp.second + (__int128_t)C * (__int128_t)P * (__int128_t)Q * (__int128_t)tmp.first) % (__int128_t)(P * Q * R);
if(N % (P * Q * R) < good){
cout << N / (P * Q * R);
}
else{
cout << N / (P * Q * R) + 1;
}
return 0;
}
Cafe1942