Task: | Järjestys |
Sender: | Hennkka |
Submission time: | 2020-11-28 10:13:25 +0200 |
Language: | Rust |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 26 |
#2 | ACCEPTED | 74 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.01 s | 1, 2 | details |
#2 | ACCEPTED | 0.01 s | 2 | details |
#3 | ACCEPTED | 0.01 s | 2 | details |
Code
use std::io::BufRead;const MOD: usize = 1_000_000_007;fn solve(a: Vec<usize>, x: usize) -> usize {let a = {let mut a = a;a.sort();a};let mut res = 1;for (i, v) in a.iter().enumerate() {// How many values are at most x smallerlet k = (0..i).rev().map(|j| a[j]).take_while(|c| v - c <= x).count();res *= k + 1;res %= MOD;}res}fn main() {let stdin = std::io::stdin();let stdin = stdin.lock();let mut lines = stdin.lines();let t: usize = lines.next().unwrap().unwrap().parse().unwrap();for _ in 0..t {let nx: Vec<usize> = lines.next().unwrap().unwrap().split_whitespace().map(|v| v.parse().unwrap()).collect();let (_n, x) = (nx[0], nx[1]);let input: Vec<usize> = lines.next().unwrap().unwrap().split_whitespace().map(|v| v.parse().unwrap()).collect();println!("{}", solve(input, x));}}#[cfg(test)]mod tests {use super::*;#[test]fn test_sample() {assert_eq!(solve(vec![1], 5), 1);assert_eq!(solve(vec![1, 2, 3], 1), 4);assert_eq!(solve(vec![2, 100, 95, 999, 1, 77, 6, 8], 42), 144);}}
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
input |
---|
100 5 20 65 49 97 55 9 6 33 42 32 10 92 60 37 ... |
correct output |
---|
6 192 4 72 288 ... |
user output |
---|
6 192 4 72 288 ... Truncated |
Test 2
Group: 2
Verdict: ACCEPTED
input |
---|
100 85 980 570 804 393 119 973 743 345 46... |
correct output |
---|
753889928 541098438 241592657 827522722 403761060 ... |
user output |
---|
753889928 541098438 241592657 827522722 403761060 ... Truncated |
Test 3
Group: 2
Verdict: ACCEPTED
input |
---|
100 100 1 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
988185646 196898158 546822979 56844088 346866189 ... |
user output |
---|
988185646 196898158 546822979 56844088 346866189 ... Truncated |