結果
| 問題 | No.3557 KCPC or KUPC 2 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-05-29 19:37:23 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 960 bytes |
| 記録 | |
| コンパイル時間 | 2,900 ms |
| コンパイル使用メモリ | 331,156 KB |
| 実行使用メモリ | 6,400 KB |
| 最終ジャッジ日時 | 2026-05-29 19:37:34 |
| 合計ジャッジ時間 | 5,403 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_1 |
| 純コード判定待ち |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点1 | 10 % | AC * 30 |
| 部分点2 | 40 % | AC * 30 |
| 部分点3 | 50 % | AC * 30 |
| 合計 | 100 点 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main(void){
long long n,a,b,c,d,e,f;
cin>>n>>a>>b>>c>>d>>e>>f;
long long d1,d2;
long long mn=0,mx=1e9;
while(mx-mn){
long long k=(mn+mx+1)/2;
if((__int128)a*k*b+(__int128)c*b*(k-1)*k/2>n){
mx=k-1;
}else{
mn=k;
}
}
d1=mn*b;
long long tn=n-(a*mn*b+c*b*(mn-1)*mn/2);
d1+=(tn+(mn*c+a)-1)/(mn*c+a);
mn=0,mx=1e9;
while(mx-mn){
long long k=(mn+mx+1)/2;
if((__int128)d*k*e+(__int128)f*e*(k-1)*k/2>n){
mx=k-1;
}else{
mn=k;
}
}
d2=mn*e;
tn=n-(d*mn*e+f*e*(mn-1)*mn/2);
//cout<<mn<<" "<<d2<<" "<<tn<<endl;
d2+=(tn+(mn*f+d)-1)/(mn*f+d);
//cout<<d1<<" "<<d2<<endl;
if(d1==d2){
cout<<"Same"<<endl;
}else if(d1<d2){
cout<<"KCPC"<<endl;
}else{
cout<<"KUPC"<<endl;
}
return 0;
}