結果
| 問題 |
No.2516 Credit Creation
|
| コンテスト | |
| ユーザー |
yassu0320
|
| 提出日時 | 2023-11-08 19:23:02 |
| 言語 | Nim (2.2.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 4,818 bytes |
| コンパイル時間 | 3,016 ms |
| コンパイル使用メモリ | 73,088 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-25 23:52:40 |
| 合計ジャッジ時間 | 3,548 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 10 |
ソースコード
import algorithm
import deques
import options
import sequtils
import sets
import std/heapqueue
import std/math
import std/tables
import strformat
import strutils
#{.checks: off.}
{.warning[UnusedImport]: off.}
{.hint[XDeclaredButNotUsed]: off.}
const letter: string = "abcdefghijklmnopqrstuvwxyz"
const Letter: string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
const MAX_INT: int = high(int)
const MIN_INT: int = low(int)
const MOD998244353 = 998_244_353
const MOD1000000007 = 1_000_000_007
const DXDY4: seq[tuple[x, y: int]] = @[(0, 1), (1, 0), (0, -1), (-1, 0)]
const DXDY8: seq[tuple[x, y: int]] = @[(0, 1), (1, 0), (0, -1), (-1, 0), (1, 1), (1, -1), (-1, -1), (-1, 1)]
proc scanf(formatstr: cstring){.header: "<stdio.h>", varargs.}
proc getchar(): char {.header: "<stdio.h>", varargs.}
proc nextInt(): int = scanf("%lld", addr result)
proc nextInts(n: int): seq[int] =
var res = newSeq[int](n)
for i in 0..<n:
res[i] = nextInt()
return res
proc nextInts(h, w: int): seq[seq[int]] =
result = newSeqWith(h, newSeq[int](w))
for y in 0..<h:
for x in 0..<w:
result[y][x] = nextInt()
proc nextInt64(): int64 = scanf("%lld", addr result)
proc nextUInt64(): uint64 = scanf("%lld", addr result)
proc nextFloat(): float = scanf("%lf", addr result)
proc nextFloats(n: int): seq[float] =
var res = newSeq[float](n)
for i in 0..<n:
res[i] = nextFloat()
return res
proc nextChar(): char =
while true:
var c = getchar()
if int(c) > int(' '):
return c
proc nextString(): string =
var get = false
result = ""
while true:
var c = getchar()
if int(c) > int(' '):
get = true
result.add(c)
else:
if get: break
get = false
proc nextStrings(n: int): seq[string] =
for _ in 0..<n:
result.add(nextString())
iterator range(start, stop, step: int): int =
# instead of countup or countdown
assert step != 0
if step > 0:
var i = start
while i <= stop:
yield i
i+=step
else:
var i = start
while i >= stop:
yield i
i+=step
func `+`(a, b: bool): bool = a or b
func `*`(a, b: bool): bool = a and b
func `+`(a: var bool, b: bool): bool = a = a or b
func `*`(a: var bool, b: bool): bool = a = a and b
func `|`(a, b: bool): bool = a or b
proc `|=`(a: var bool, b: bool) =
a = a or b
func `|`(c1, c2: int): int = c1 or c2
func `&`(a, b: bool): bool = a and b
proc `&=`(a: var bool, b: bool) =
a = a and b
func `&`(c1, c2: int): int = c1 and c2
func `//`(a, b: int): int = a div b
proc `//=`(a: var int, b: int) =
a = a div b
func `%`(a: int, b: Positive): int =
result = a mod b
if result < 0:
result += b
proc `%=`(a: var int, b: int) =
a = a mod b
func `<<`(a: int, s: int): int = a shl s
func `>>`(a: int, s: int): int = a shr s
proc `>>=`(a: var int, b: int) =
a = a shr b
proc `[]`(n, i: Natural): int = (n >> i) & 1
func ceil[T: SomeInteger](b, a: T): T = (a+b-1) div a
func all(a: openArray[bool]): bool =
result = true
for x in a:
result &= x
func any(a: openArray[bool]): bool =
result = false
for x in a:
result |= x
# Z/mo Z上のaの逆元
func inv(a, mo: int): int =
var r = (mo, a)
var x = (0, 1)
while r[1] != 0:
x = (x[1], (x[0] - (r[0] div r[1]) * x[1]) % mo)
r = (r[1], r[0] % r[1])
if r[0] == 1:
return x[0]
else:
return -1
func bitLength(n: Natural): int =
result = 0
var num = abs(n)
while num > 0:
result += 1
num = num shr 1
proc chmax[T](a: var T, vars: varargs[T]): bool {.discardable.} =
let target = max(vars)
if a < target:
a = target
return true
else:
return false
proc chmin[T](a: var T, vars: varargs[T]): bool {.discardable.} =
let target = min(vars)
if a > target:
a = target
return true
else:
return false
template present(a: typed): bool = a.len != 0
template empty(a: typed): bool = a.len == 0
template rep(idx: untyped, n: SomeOrdinal, act: untyped): untyped =
for idx in 0 ..< n:
act
template loop(body: untyped): untyped =
while true:
body
func Yn(cond: bool, yes: string = "Yes", no: string = "No"): string =
if cond:
yes
else:
no
func `<`[T](u, v: openArray[T]): bool =
assert u.len == v.len
for j in 0..<u.len:
if u[j] != v[j]:
return u[j]-v[j] < 0
return true
template pass() = discard
template pass(x: typed) = discard x
template cont() = continue
template ret() = return
# start coding
let
N = nextInt()
R = nextFloat()
var res = 0.0
for i in 0..<N:
res += (1-R)^i
res *= 100
echo res
yassu0320