Submission #1680702
Source Code Expand
#![allow(unused_imports, unused_variables, dead_code)] use std::io::*; use std::fmt::*; use std::str::*; use std::cmp::*; use std::collections::*; trait InputValue { fn parse(s: &str) -> Self; } fn read<T: InputValue>() -> T { let mut buf = String::new(); let _ = stdin().read_line(&mut buf); T::parse(&buf.trim()) } fn readnc<T: InputValue>() -> Vec<T> { let mut vec = vec![]; let line: String = read(); for token in line.split_whitespace() { vec.push(T::parse(token)); } vec } fn readn<T: InputValue>(n: usize) -> Vec<T> { let mut vec = vec![]; for _ in 0..n { vec.push(read()); } vec } macro_rules! parse_single_value { ($($t:ty),*) => { $( impl InputValue for $t { fn parse(s: &str) -> $t { s.parse().unwrap() } } )* } } parse_single_value!(i32, i64, f32, f64, usize, String); macro_rules! parse_tuple { ($($t:ident),*) => { impl<$($t),*> InputValue for ($($t),*) where $($t: InputValue),* { fn parse(s: &str) -> ($($t),*) { let mut tokens = s.split_whitespace(); let t = ($($t::parse(tokens.next().unwrap())),*); t } } } } parse_tuple!(A, B); parse_tuple!(A, B, C); // === const MOD: i64 = 1e9 as i64 + 7; fn compute(a: &Vec<i64>) -> i64 { let n = a.len(); let mut diff = vec![]; for i in 1..n { diff.push((a[i] - a[i-1]) % MOD); } let mut sum = 0; let dn = n-1; for i in 0..dn { let l = i+1; let r = dn-i; sum += diff[i] * (l as i64) % MOD * (r as i64) % MOD; sum %= MOD; } sum } fn main() { let (n, m): (usize, usize) = read(); let col: Vec<i64> = readnc(); let row: Vec<i64> = readnc(); println!("{}", compute(&col) * compute(&row) % MOD); }
Submission Info
Submission Time | |
---|---|
Task | D - ### |
User | hamadu |
Language | Rust (1.15.1) |
Score | 500 |
Code Size | 1893 Byte |
Status | AC |
Exec Time | 23 ms |
Memory | 11512 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 500 / 500 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_000.txt, 0_001.txt |
All | 0_000.txt, 0_001.txt, max.txt, min.txt, mod.txt, n2.txt, rndA.txt, rndB.txt, rndC.txt, rndD.txt, rndE.txt, rndF.txt, rndG.txt, rndH.txt, rndI.txt, rndJ.txt, var.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_000.txt | AC | 2 ms | 4352 KB |
0_001.txt | AC | 2 ms | 4352 KB |
max.txt | AC | 23 ms | 9972 KB |
min.txt | AC | 2 ms | 4352 KB |
mod.txt | AC | 12 ms | 9464 KB |
n2.txt | AC | 12 ms | 9464 KB |
rndA.txt | AC | 23 ms | 9660 KB |
rndB.txt | AC | 22 ms | 9660 KB |
rndC.txt | AC | 23 ms | 9660 KB |
rndD.txt | AC | 22 ms | 9660 KB |
rndE.txt | AC | 23 ms | 9664 KB |
rndF.txt | AC | 23 ms | 9660 KB |
rndG.txt | AC | 23 ms | 9660 KB |
rndH.txt | AC | 23 ms | 9684 KB |
rndI.txt | AC | 23 ms | 9664 KB |
rndJ.txt | AC | 23 ms | 9660 KB |
var.txt | AC | 23 ms | 11512 KB |