結果
| 問題 | No.3557 KCPC or KUPC 2 |
| コンテスト | |
| ユーザー |
nauclhlt
|
| 提出日時 | 2026-05-29 19:37:29 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,263 bytes |
| 記録 | |
| コンパイル時間 | 3,334 ms |
| コンパイル使用メモリ | 339,904 KB |
| 実行使用メモリ | 7,976 KB |
| 最終ジャッジ日時 | 2026-05-29 19:37:37 |
| 合計ジャッジ時間 | 6,137 ms |
|
ジャッジサーバーID (参考情報) |
judge4_1 / judge1_1 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点1 | 10 % | AC * 30 |
| 部分点2 | 40 % | AC * 29 WA * 1 |
| 部分点3 | 50 % | AC * 16 WA * 14 |
| 合計 | 10 点 |
ソースコード
#include <bits/stdc++.h>
#include <atcoder/math>
using namespace std;
using ll = long long;
ll calc(ll days, ll a, ll b, ll c)
{
ll k = days / b;
//ll mx = b * k;
return a * days + c * (k * days - b * k * (k + 1) / 2LL);
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll N, A, B, C, D, E, F;
cin >> N >> A >> B >> C >> D >> E >> F;
ll kcpc, kupc;
{
ll left = 0LL;
ll right = N / A + 100LL;
while (right > left)
{
ll mid = left + (right - left) / 2LL;
if (calc(mid, A, B, C) >= N)
{
right = mid;
}
else
{
left = mid + 1;
}
}
kcpc = left;
}
{
ll left = 0LL;
ll right = N / A + 100LL;
while (right > left)
{
ll mid = left + (right - left) / 2LL;
if (calc(mid, D, E, F) >= N)
{
right = mid;
}
else
{
left = mid + 1;
}
}
kupc = left;
}
if (kupc < kcpc) cout << "KUPC" << endl;
else if (kcpc < kupc) cout << "KCPC" << endl;
else cout << "Same" << endl;
}
nauclhlt