結果
| 問題 | No.752 mod数列 |
| コンテスト | |
| ユーザー |
特命ログイン
|
| 提出日時 | 2018-11-09 22:56:24 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 949 bytes |
| コンパイル時間 | 12,661 ms |
| コンパイル使用メモリ | 390,840 KB |
| 実行使用メモリ | 813,136 KB |
| 最終ジャッジ日時 | 2024-11-21 06:38:20 |
| 合計ジャッジ時間 | 25,839 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 MLE * 1 |
| other | AC * 18 RE * 8 MLE * 5 |
ソースコード
use std::io::{Read,stdin};
fn main() {
let mut buf = String::new();
stdin().read_to_string(&mut buf).unwrap();
let mut tok = buf.split_whitespace();
let mut get = || tok.next().unwrap();
macro_rules! get {
($t:ty) => (get().parse::<$t>().unwrap());
() => (get!(i64));
}
let p = get!();
let mut tb = vec![0; 1 + p as usize];
for i in 1..=p {
let j = i as usize;
tb[j] += tb[j - 1] + p % i;
}
let q = get!();
for _ in 0..q {
let li = get!();
let ri = get!();
if p < li {
let ans = (ri - li + 1) * p;
println!("{}", ans);
} else if p < ri {
let mut ans = (ri - p) * p;
ans += tb[p as usize] - tb[li as usize - 1];
println!("{}", ans);
} else {
let ans = tb[ri as usize] - tb[li as usize - 1];
println!("{}", ans);
}
}
}
特命ログイン