| Task: | Forest density |
| Sender: | Giaco |
| Submission time: | 2025-09-22 17:06:05 +0300 |
| Language: | Rust (2021) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | WRONG ANSWER | 0.00 s | details |
| #2 | WRONG ANSWER | 0.35 s | details |
| #3 | WRONG ANSWER | 0.32 s | details |
Compiler report
warning: unused imports: `max`, `min`
--> input/code.rs:1:16
|
1 | use std::cmp::{max, min};
| ^^^ ^^^
|
= note: `#[warn(unused_imports)]` on by default
warning: unused imports: `HashMap`, `HashSet`
--> input/code.rs:2:24
|
2 | use std::collections::{HashMap, HashSet};
| ^^^^^^^ ^^^^^^^
warning: variable does not need to be mutable
--> input/code.rs:63:14
|
63 | let (mut s, mut e): ((usize, usize), (usize, usize)) = ((input!(it), input!(it)), (input!(it), input!(it)));
| ----^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
warning: variable does not need to be mutable
--> input/code.rs:63:21
|
63 | let (mut s, mut e): ((usize, usize), (usize, usize)) = ((input!(it), input!(it)), (input!(it), input!(it)));
| ----^
| |
| help: remove this `mut`
warning: 4...Code
use std::cmp::{max, min};
use std::collections::{HashMap, HashSet};
use std::io::{self, Read};
macro_rules! input {
($it: expr) => {
$it.next().unwrap().parse().unwrap()
};
($it: expr, $T: ty) => {
$it.next().unwrap().parse::<$T>().unwrap()
};
}
/*
mod classes;
mod homework;
fn main() {
// println!("{}", "-".repeat(20));
classes::c07::task2();
// homework::hw2::task1();
// println!("{}", "-".repeat(20));
}
// */
fn main() {
let mut buf = String::new();
io::stdin().read_to_string(&mut buf).unwrap();
let mut it = buf.split_whitespace();
let (n, mut q): (usize, usize) = (input!(it), input!(it));
let mut f: Vec<Vec<usize>> = vec![vec![0; n]; n];
for i in 0..n {
let s: String = input!(it);
let v: Vec<char> = s.chars().collect();
for j in 0..n {
if v[j] == '*' {
f[i][j] = 1;
}
}
}
// prefix sum
let mut ps: Vec<Vec<usize>> = vec![vec![0; n+1]; n+1];
for i in 1..n {
ps[1][i+1] = f[0][i];
}
// for i in 1..n {
// ps[i+1][1] = f[i][0];
// }
for i in 1..n {
for j in 0..n {
ps[i+1][j+1] = f[i][j] + ps[i+1][j] + ps[i][j+1] - ps[i][j];
}
}
// println!("{:?}", ps);
while q>0 {
q-=1;
let (mut s, mut e): ((usize, usize), (usize, usize)) = ((input!(it), input!(it)), (input!(it), input!(it)));
// s.0-=1;
// s.1-=1;
// e.0-=1;
// e.1-=1;
// println!("{:?}, {:?}", s, e);
let rtn = ps[e.0][e.1] + ps[s.0-1][s.1-1] - ps[e.0][s.1-1] - ps[s.0-1][e.1];
println!("{} ", rtn);
}
}
Test details
Test 1
Verdict: WRONG ANSWER
| input |
|---|
| 10 100 **.*.*.**. *.**.*..*. .*****.**. **....***. ... |
| correct output |
|---|
| 10 14 5 7 8 ... |
| user output |
|---|
| 10 14 5 7 8 ... Truncated |
Test 2
Verdict: WRONG ANSWER
| input |
|---|
| 1000 200000 **.**.****..**.***..**.***.**.... |
| correct output |
|---|
| 41079 2824 15631 1548 8483 ... |
| user output |
|---|
| 41079 2824 15631 1548 8483 ... Truncated |
Test 3
Verdict: WRONG ANSWER
| input |
|---|
| 1000 200000 ******************************... |
| correct output |
|---|
| 1000000 1000000 1000000 1000000 1000000 ... |
| user output |
|---|
| 999001 999001 999001 999001 999001 ... Truncated |
