結果
| 問題 | No.3557 KCPC or KUPC 2 |
| コンテスト | |
| ユーザー |
jastaway
|
| 提出日時 | 2026-05-26 00:28:56 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 2,000 ms |
| コード長 | 1,449 bytes |
| 記録 | |
| コンパイル時間 | 9,018 ms |
| コンパイル使用メモリ | 442,956 KB |
| 実行使用メモリ | 6,400 KB |
| 最終ジャッジ日時 | 2026-05-29 18:41:17 |
| 合計ジャッジ時間 | 15,867 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_0 |
| 純コード判定待ち |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点1 | 10 % | AC * 30 |
| 部分点2 | 40 % | AC * 30 |
| 部分点3 | 50 % | AC * 30 |
| 合計 | 100 点 |
ソースコード
#include "testlib.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll MAX_N = 10'000'000'000'000'000;
const ll MAX_V = 1'000'000;
int main(int argc, char* argv[]) {
registerValidation(argc, argv);
ll N = inf.readLong(1, MAX_N, "N");
inf.readEoln();
ll A = inf.readLong(1, MAX_V, "A");
inf.readSpace();
ll B = inf.readLong(1, MAX_V, "B");
inf.readSpace();
ll C = inf.readLong(1, MAX_V, "C");
inf.readEoln();
ll D = inf.readLong(1, MAX_V, "D");
inf.readSpace();
ll E = inf.readLong(1, MAX_V, "E");
inf.readSpace();
ll F = inf.readLong(1, MAX_V, "F");
inf.readEoln();
inf.readEof();
auto calc = [&](ll x, ll y, ll z)->ll
{
ll ng = 0, ok = N/x + 1;
while(ok - ng > 1)
{
ll mid = (ok + ng)/2;
ll k = mid/y;
ll r = mid%y;
double tans = 1.0*y*(1.0*x*k + 1.0*z*k*(k-1)/2) + 1.0*r*(x + k*z);
if(tans >= 2*N)
{
ok = mid;
continue;
}
ll ret = y*(x*k + z*k*(k-1)/2) + r*(x + k*z);
if(ret >= N) ok = mid;
else ng = mid;
}
return ok;
};
ll ans1 = calc(A, B, C);
ll ans2 = calc(D, E, F);
// cerr << ans1 << " " << ans2 << endl;
if(ans1 < ans2) cout << "KCPC" << endl;
else if(ans1 > ans2) cout << "KUPC" << endl;
else cout << "Same" << endl;
}
jastaway