結果

問題 No.2699 Simple Math (Returned)
ユーザー ID 21712
提出日時 2024-11-09 06:13:55
言語 Go
(1.23.4)
結果
AC  
実行時間 958 ms / 2,000 ms
コード長 579 bytes
コンパイル時間 17,812 ms
コンパイル使用メモリ 221,152 KB
実行使用メモリ 6,528 KB
最終ジャッジ日時 2024-11-09 06:14:23
合計ジャッジ時間 25,801 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 11
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import . "fmt"
import . "os"
import bf "bufio"
import . "math/big"

func main() {
	rd:=bf.NewReader(Stdin)
	wr:=bf.NewWriter(Stdout)
	var t int
	Fscan(rd,&t)
	one:=NewInt(1)
	ten:=NewInt(10)
	mod:=NewInt(998244353)
	x,z:=new(Int),new(Int)
	for ;t>0;t-- {
		var n,m int64
		Fscan(rd,&n,&m)
		if n/m%2==0 {
			z.Exp(ten,z.SetInt64(n%m),mod)
			z.Add(z,mod).Sub(z,one).Mod(z,mod)
		} else {
			x.Exp(ten,x.SetInt64(m),mod)
			x.Add(x,one).Add(x,mod).Add(x,mod)
			z.Exp(ten,z.SetInt64(n%m),mod)
			z.Sub(x,z).Sub(z,one).Mod(z,mod)
		}
		Fprintln(wr,z)
	}
	wr.Flush()
}
0