結果
問題 | No.1664 Unstable f(n) |
ユーザー | merlin |
提出日時 | 2021-09-03 21:51:49 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 92 ms / 2,000 ms |
コード長 | 1,875 bytes |
コンパイル時間 | 3,248 ms |
コンパイル使用メモリ | 77,660 KB |
実行使用メモリ | 49,288 KB |
最終ジャッジ日時 | 2024-12-15 12:35:31 |
合計ジャッジ時間 | 7,108 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 58 ms
48,316 KB |
testcase_01 | AC | 59 ms
47,848 KB |
testcase_02 | AC | 58 ms
48,216 KB |
testcase_03 | AC | 57 ms
48,124 KB |
testcase_04 | AC | 57 ms
48,132 KB |
testcase_05 | AC | 59 ms
47,832 KB |
testcase_06 | AC | 58 ms
48,144 KB |
testcase_07 | AC | 59 ms
48,192 KB |
testcase_08 | AC | 58 ms
48,076 KB |
testcase_09 | AC | 58 ms
48,340 KB |
testcase_10 | AC | 58 ms
48,116 KB |
testcase_11 | AC | 81 ms
49,120 KB |
testcase_12 | AC | 90 ms
49,256 KB |
testcase_13 | AC | 89 ms
49,080 KB |
testcase_14 | AC | 90 ms
49,288 KB |
testcase_15 | AC | 87 ms
49,248 KB |
testcase_16 | AC | 87 ms
49,108 KB |
testcase_17 | AC | 92 ms
49,084 KB |
testcase_18 | AC | 91 ms
49,248 KB |
testcase_19 | AC | 91 ms
49,100 KB |
testcase_20 | AC | 88 ms
49,240 KB |
testcase_21 | AC | 59 ms
48,180 KB |
testcase_22 | AC | 59 ms
48,192 KB |
testcase_23 | AC | 59 ms
48,280 KB |
testcase_24 | AC | 58 ms
48,148 KB |
testcase_25 | AC | 60 ms
48,292 KB |
testcase_26 | AC | 58 ms
48,192 KB |
testcase_27 | AC | 58 ms
47,916 KB |
testcase_28 | AC | 60 ms
48,256 KB |
testcase_29 | AC | 60 ms
47,984 KB |
testcase_30 | AC | 60 ms
48,124 KB |
testcase_31 | AC | 59 ms
48,112 KB |
testcase_32 | AC | 63 ms
48,064 KB |
testcase_33 | AC | 59 ms
47,848 KB |
testcase_34 | AC | 59 ms
47,992 KB |
testcase_35 | AC | 90 ms
49,272 KB |
testcase_36 | AC | 58 ms
48,356 KB |
testcase_37 | AC | 81 ms
49,260 KB |
testcase_38 | AC | 59 ms
47,972 KB |
testcase_39 | AC | 61 ms
48,324 KB |
testcase_40 | AC | 86 ms
48,880 KB |
ソースコード
import java.io.*; import java.math.BigInteger; import java.util.*; class Main { public static void main(String args[])throws Exception { BufferedReader bu=new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb=new StringBuilder(); long n=Long.parseLong(bu.readLine()); int i; long r=root(n),ans=Math.min(n,r+(n-r*r)+2); //System.out.println(ans); for(i=3;i<63;i++) { int j=2; if(i<20) { long ti=power(j,i); while(ti<=n) { ans=Math.min(ans,n-ti+i+j); j++; ti=power(j,i); } } else { BigInteger ti=big_power(j,i),en=BigInteger.valueOf(n); while(ti.compareTo(en)<=0) { ans=Math.min(ans,en.subtract(ti).longValue()+i+j); j++; ti=big_power(j,i); } } //System.out.println(i+" "+j); } System.out.print(ans); } static long root(long n) { long l=1,r=(int)1e9,ans=l,mid; while(l<=r) { mid=(l+r)>>1; if(mid*mid<=n) { ans=mid; l=mid+1; } else r=mid-1; } return ans; } static long power(long a,int b) { long res=1; while(b!=0) { if(b%2==1) res=res*a; b>>=1; a=a*a; } return res; } static BigInteger big_power(int a,int b) { BigInteger res=new BigInteger("1"); while(b!=0) { res=res.multiply(res.valueOf(a)); b--; } return res; } }