結果
| 問題 |
No.2787 グッドスタイン数列?
|
| コンテスト | |
| ユーザー |
沙耶花
|
| 提出日時 | 2024-06-14 22:59:46 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 880 bytes |
| コンパイル時間 | 4,412 ms |
| コンパイル使用メモリ | 250,360 KB |
| 最終ジャッジ日時 | 2025-02-21 22:21:28 |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 29 TLE * 1 -- * 25 |
ソースコード
#include <stdio.h>
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace atcoder;
using mint = modint998244353;
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define Inf32 1000000001
#define Inf64 1000000000000000001
long long get(long long n,long long b){
long long ret = n;
long long cur = 1;
while(n!=0){
n /= b;
ret += n * cur;
cur *= b+1;
}
return ret;
}
void ng(){
cout<<"No"<<endl;
exit(0);
}
int main(){
long long N,B,C;
cin>>N>>B>>C;
cout<<"Yes"<<endl;
if(C<=1)ng();
C-=2;
long long ans = 2;
while(true){
long long n = N;
n /= B;
n /= B;
n /= B;
if(n>0){
ng();
}
if(N>C){
ng();
}
if(N<B){
C -= N*2;
if(C<0)ng();
ans += N*2;
break;
}
N = get(N,B)-1;
B++;
C -= 2;
ans += 2;
if(ans >= 100000000)ng();
}
if(C<0)ng();
cout<<"Yes"<<endl;
cout<<ans<<endl;
return 0;
}
沙耶花