結果
| 問題 |
No.1184 Hà Nội
|
| コンテスト | |
| ユーザー |
Konton7
|
| 提出日時 | 2020-08-22 13:53:02 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 1,360 bytes |
| コンパイル時間 | 14,077 ms |
| コンパイル使用メモリ | 394,808 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-15 08:08:04 |
| 合計ジャッジ時間 | 14,151 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 27 |
コンパイルメッセージ
warning: function `comb` is never used
--> src/main.rs:21:4
|
21 | fn comb(n: usize, k: usize, m: i64, frac: &[i64], frac_inv: &[i64]) -> i64 {
| ^^^^
|
= note: `#[warn(dead_code)]` on by default
ソースコード
#[allow(unused_imports)]
use std::cmp;
use std::fs::File;
use std::io::Read;
#[allow(dead_code)]
fn pow_speedy_with_mod(mut p: i64, mut q: i64, m: i64) -> i64 {
p %= m;
let mut r = p;
let mut ret: i64 = 1;
while q > 0 {
ret *= if q % 2 == 1 { r } else { 1 };
r *= r;
r %= m;
q /= 2;
ret %= m;
}
return ret;
}
fn comb(n: usize, k: usize, m: i64, frac: &[i64], frac_inv: &[i64]) -> i64 {
let mut ret = 1i64;
if n < k {
return 0;
}
ret *= frac[n] * frac_inv[n - k];
ret %= m;
ret *= frac_inv[k];
ret %= m;
ret
}
fn main() {
let inputstatus = 0;
let mut buf = String::new();
let filename = "inputrust.txt";
if inputstatus == 1 {
let mut f = File::open(filename).expect("file not found");
f.read_to_string(&mut buf)
.expect("something went wrong reading the file");
} else {
std::io::stdin().read_to_string(&mut buf).unwrap();
}
let mut iter = buf.split_whitespace();
let mut n: i64 = iter.next().unwrap().parse().unwrap();
let l: i64 = iter.next().unwrap().parse().unwrap();
n = (n + l - 1) / l;
println!("{}", pow_speedy_with_mod(2, n, 998244353) - 1);
// let n = iter.next().unwrap().parse().unwrap();
// println!("{}", n);
// println!("{:?}", cum_num);
}
Konton7