結果
| 問題 | No.1832 NAND Reversible |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-11-15 14:58:58 |
| 言語 | Nim (2.2.10 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 5 ms / 2,000 ms |
| + 873µs | |
| コード長 | 1,798 bytes |
| 記録 | |
| コンパイル時間 | 4,837 ms |
| コンパイル使用メモリ | 98,328 KB |
| 実行使用メモリ | 9,832 KB |
| 最終ジャッジ日時 | 2026-09-23 07:12:32 |
| 合計ジャッジ時間 | 6,983 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 23 |
ソースコード
{.warning[UnusedImport]: off.}
import algorithm,sequtils,tables,math,sets,strutils,sugar,heapqueue,deques,bitops,re,streams,times,strscans
let outstream=newFileStream(stdout)
proc input():string{.inline.}=stdin.readLine
proc print(args:varargs[string,`$`]):void{.inline.}=stdout.writeLine(args)
proc debug(args:varargs[string,`$`]):void{.inline.}=stderr.writeLine(args)
proc flush():void{.inline.}=flush(outstream)
proc `%`(x:int,y:int):int{.inline.}=((x mod y)+y) mod y
proc `//`(x:int,y:int):int{.inline.}=((x)-(x%y)) div y
proc `%=`(x:var int,y:int):void{.inline.}=x=x%y
proc `//=`(x:var int,y:int):void{.inline.}=x=x//y
proc `**`(x:int,y:int):int{.inline.}=x^y
proc `**`(x:float,y:int):float{.inline.}=x^y
proc `^`(x:int,y:int):int{.inline.}=x xor y
proc `&`(x:int,y:int):int{.inline.}=x and y
proc `|`(x:int,y:int):int{.inline.}=x or y
proc `<<`(x:int,y:int):int{.inline.}=x shl y
proc `>>`(x:int,y:int):int{.inline.}=x shr y
proc `~`(x:int):int{.inline.}=not x
proc `^=`(x:var int,y:int):void{.inline.}=x=x xor y
proc `&=`(x:var int,y:int):void{.inline.}=x=x and y
proc `|=`(x:var int,y:int):void{.inline.}=x=x or y
proc `<<=`(x:var int,y:int):void{.inline.}=x=x shl y
proc `>>=`(x:var int,y:int):void{.inline.}=x=x shr y
proc `max=`(x:var int,y:int):void{.inline.}=x=max(x,y)
proc `min=`(x:var int,y:int):void{.inline.}=x=min(x,y)
proc `max=`(x:var float,y:float):void{.inline.}=x=max(x,y)
proc `min=`(x:var float,y:float):void{.inline.}=x=min(x,y)
import atcoder/modint,atcoder/extra/math/combination
type mint=modint998244353
var N,K:int
discard input().scanf("$i $i",N,K)
if K==0:
print 1
quit()
if K==1:
if N%2==0:print 2
else:print N-2
quit()
var ans:mint=0
for i in 0..N-K:
if i%2==1:
continue
let use=N-i
ans+=(i+1)*mint.C(use-2,K-2)
print ans