結果
| 問題 | No.604 誕生日のお小遣い | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2020-07-01 03:15:21 | 
| 言語 | Kuin (KuinC++ v.2021.9.17) | 
| 結果 | 
                                CE
                                 
                            (最新) 
                                AC
                                 
                            (最初) | 
| 実行時間 | - | 
| コード長 | 645 bytes | 
| コンパイル時間 | 146 ms | 
| コンパイル使用メモリ | 9,764 KB | 
| 最終ジャッジ日時 | 2024-11-21 19:34:50 | 
| 合計ジャッジ時間 | 524 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge4 | 
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
            
            
            
            
            ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
0x00000005: ファイル「/kuin/sys/cpp/num.kn」が開けません。 0x00020006: [\main: 20, 12]識別子「num@BigInt」の定義が見つかりません。名前を間違えている可能性があります。 0x00020006: [\main: 20, 24]識別子「num@makeBigIntFromInt」の定義が見つかりません。名前を間違えている可能性があります。 0x00020006: [\main: 21, 11]識別子「num@BigInt」の定義が見つかりません。名前を間違えている可能性があります。 0x00020006: [\main: 21, 23]識別子「num@makeBigIntFromInt」の定義が見つかりません。名前を間違えている可能性があります。 0x00020006: [\main: 22, 11]識別子「num@BigInt」の定義が見つかりません。名前を間違えている可能性があります。 0x00020006: [\main: 22, 23]識別子「num@makeBigIntFromInt」の定義が見つかりません。名前を間違えている可能性があります。 0x00020028: [\main: 23, 5]値が設定されるべき場所に値が渡されませんでした。 0x00020028: [\main: 24, 5]値が設定されるべき場所に値が渡されませんでした。 0x00020028: [\main: 25, 5]値が設定されるべき場所に値が渡されませんでした。 0x00020028: [\main: 26, 7]値が設定されるべき場所に値が渡されませんでした。
ソースコード
func main()
	var a: int :: cui@inputInt()
	var b: int :: cui@inputInt()
	var c: int :: cui@inputInt()
	
	var ok: int :: 10 ^ 18
	var ng: int :: 0
	while((ok - ng).abs() > 1)
		var md: int :: (ok + ng) / 2
		if(f(md, a, b, c))
			do ok :: md
		else
			do ng :: md
		end if
	end while
	var ans: int :: ok
	do cui@print("\{ans}\n")
	
	func f(d: int, a: int, b: int, c: int): bool
		var sum: num@BigInt :: num@makeBigIntFromInt(0)
		var nb: num@BigInt :: num@makeBigIntFromInt(b)
		var nc: num@BigInt :: num@makeBigIntFromInt(c)
		do nb :: nb.mulInt(d / a)
		do sum :: sum.add(nb)
		do sum :: sum.addInt(d - d / a)
		ret sum >= nc
	end func
end func
            
            
            
        