結果
| 問題 |
No.1664 Unstable f(n)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-09-04 17:11:51 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,039 bytes |
| コンパイル時間 | 723 ms |
| コンパイル使用メモリ | 69,032 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-12-21 06:25:35 |
| 合計ジャッジ時間 | 6,875 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 WA * 19 |
ソースコード
#include <iostream>
#include <math.h>
using namespace std;
typedef long long LL;
int main()
{
LL N,n;
cin >> N;
if (N == 1) {
cout << 1 << endl;
return 0;
}
int i = 1;
int j = 0;
LL Min1=0, Min2=0;
LL Ni = 0, Nj = 0;
int I1=0, J1=0, I2=0, J2=0;
bool bLoop = true;
for (i = 2; i > 0; i++) {
for (j = 2; j >= 0; j++) {
n = (LL)pow(i, j);
if (n == N) {
Min1 = i + j;
bLoop = false;
break;
}else if (n>N){
I1 = i;
J1 = j-1;
Nj = (LL)pow(I1, J1);
Min1 = (int)(I1 + J1 + (N - Nj));
bLoop = false;
break;
}
}
if (!bLoop) {
break;
}
}
bLoop = true;
for (j = 2; j > 0; j++) {
for (i = I1+1; i >= 0; i++) {
n = (LL)pow(i, j);
if (n == N) {
Min2 = i + j;
bLoop = false;
break;
}else if (n>N){
I2 = i-1;
J2 = j;
Ni = (LL)pow(I2, J2);
Min2 = (int)(I2 + J2 + (N - Ni));
bLoop = false;
break;
}
}
if (!bLoop) {
break;
}
}
if (Min1 < Min2) {
cout << Min1 << endl;
}
else {
cout << Min2 << endl;
}
return 0;
}