From 4a5421d73964c1e1b5100e16fece55c805f50392 Mon Sep 17 00:00:00 2001 From: yenru0 Date: Sun, 4 Oct 2026 14:27:55 +0900 Subject: [PATCH] add hyup2 and ... --- storage/hyup2/rs/01_05.rs | 8 ++++ storage/hyup2/rs/completed/01_01.rs | 30 +++++++++++++++ storage/hyup2/rs/completed/01_02.rs | 57 +++++++++++++++++++++++++++ storage/hyup2/rs/completed/01_03.rs | 60 +++++++++++++++++++++++++++++ storage/hyup2/rs/completed/01_04.rs | 50 ++++++++++++++++++++++++ 5 files changed, 205 insertions(+) create mode 100644 storage/hyup2/rs/01_05.rs create mode 100644 storage/hyup2/rs/completed/01_01.rs create mode 100644 storage/hyup2/rs/completed/01_02.rs create mode 100644 storage/hyup2/rs/completed/01_03.rs create mode 100644 storage/hyup2/rs/completed/01_04.rs diff --git a/storage/hyup2/rs/01_05.rs b/storage/hyup2/rs/01_05.rs new file mode 100644 index 0000000..e26a592 --- /dev/null +++ b/storage/hyup2/rs/01_05.rs @@ -0,0 +1,8 @@ +use std::io::{read_to_string, stdin}; + +fn main() { + let temp = read_to_string(stdin()).unwrap(); + let mut iter = temp + .split_ascii_whitespace() + .map(|x| x.parse::().unwrap()); +} \ No newline at end of file diff --git a/storage/hyup2/rs/completed/01_01.rs b/storage/hyup2/rs/completed/01_01.rs new file mode 100644 index 0000000..73eb415 --- /dev/null +++ b/storage/hyup2/rs/completed/01_01.rs @@ -0,0 +1,30 @@ +use std::io::{read_to_string, stdin}; + +fn main() { + let temp = read_to_string(stdin()).unwrap(); + let mut iter = temp + .split_ascii_whitespace() + .map(|x| x.parse::().unwrap()); + + let n = iter.next().unwrap(); + + let grid: Vec> = (0..n) + .map(|_| (0..n).map(|_| iter.next().unwrap()).collect::>()) + .collect(); + + let mut maxima = 0; + for i in 1..n - 1 { + for j in 1..n - 1 { + let mut s = 0; + for ii in 0..3 { + for jj in 0..3 { + s += grid[i + ii - 1][j + jj - 1]; + } + } + + maxima = std::cmp::max(maxima, s); + } + } + + println!("{}", maxima); +} diff --git a/storage/hyup2/rs/completed/01_02.rs b/storage/hyup2/rs/completed/01_02.rs new file mode 100644 index 0000000..633e657 --- /dev/null +++ b/storage/hyup2/rs/completed/01_02.rs @@ -0,0 +1,57 @@ +use std::io::{read_to_string, stdin}; + +fn main() { + let temp = read_to_string(stdin()).unwrap(); + let mut iter = temp + .split_ascii_whitespace() + .map(|x| x.parse::().unwrap()); + + let n = iter.next().unwrap(); + let m = iter.next().unwrap(); + + let grid: Vec> = (0..n) + .map(|_| (0..n).map(|_| iter.next().unwrap()).collect()) + .collect(); + + let mut cnt = 0; + + for i in 0..n { + let mut prev = 101; + let mut succ = 1; + + for j in 0..n { + if grid[i][j] == prev { + succ += 1; + } else { + prev = grid[i][j]; + succ = 1; + } + + if succ == m { + cnt += 1; + break; + } + } + } + + for i in 0..n { + let mut prev = 101; + let mut succ = 1; + + for j in 0..n { + if grid[j][i] == prev { + succ += 1; + } else { + prev = grid[j][i]; + succ = 1; + } + + if succ == m { + cnt += 1; + break; + } + } + } + + println!("{}", cnt); +} diff --git a/storage/hyup2/rs/completed/01_03.rs b/storage/hyup2/rs/completed/01_03.rs new file mode 100644 index 0000000..e3e4537 --- /dev/null +++ b/storage/hyup2/rs/completed/01_03.rs @@ -0,0 +1,60 @@ +use std::io::{read_to_string, stdin}; + +fn main() { + let temp = read_to_string(stdin()).unwrap(); + let mut iter = temp + .split_ascii_whitespace() + .map(|x| x.parse::().unwrap()); + + let n = iter.next().unwrap(); + let m = iter.next().unwrap(); + + let grid: Vec> = (0..n) + .map(|_| (0..m).map(|_| iter.next().unwrap()).collect()) + .collect(); + + let mut maxima = 0; + + // + for i in (0..n - 1) { + for j in (0..m - 1) { + let s = grid[i][j] + grid[i][j + 1] + grid[i + 1][j] + grid[i + 1][j + 1]; + + let m = [ + s - grid[i][j], + s - grid[i][j + 1], + s - grid[i + 1][j], + s - grid[i + 1][j + 1], + ] + .into_iter() + .max().unwrap(); + + if m > maxima { + maxima = m; + } + } + } + // + for i in (0..n - 2) { + for j in (0..m) { + let s = grid[i][j] + grid[i + 1][j] + grid[i + 2][j]; + + if s > maxima { + maxima = s; + } + } + } + + // + for i in (0..n) { + for j in (0..m - 2) { + let s = grid[i][j] + grid[i][j + 1] + grid[i][j + 2]; + + if s > maxima { + maxima = s; + } + } + } + + println!("{}", maxima); +} diff --git a/storage/hyup2/rs/completed/01_04.rs b/storage/hyup2/rs/completed/01_04.rs new file mode 100644 index 0000000..5110ae4 --- /dev/null +++ b/storage/hyup2/rs/completed/01_04.rs @@ -0,0 +1,50 @@ +use std::io::{read_to_string, stdin}; + +fn cost(k: i64) -> i64 { + k * k + (k + 1) * (k + 1) +} + +fn drill(field: &Vec>, n: usize, k: i64, r: usize, c:usize) -> i64 { + if k == 0 { + return field[r][c]; + } else { + let mut s = 0; + for i in 0..n { + for j in 0..n { + if (i as i64 - r as i64).abs() + (j as i64 - c as i64).abs() <= k { + s += field[i][j]; + } + } + } + s + } +} + +fn main() { + let temp = read_to_string(stdin()).unwrap(); + let mut iter = temp + .split_ascii_whitespace() + .map(|x| x.parse::().unwrap()); + + let n = iter.next().unwrap(); + let m = iter.next().unwrap() as i64; + let mut maxima = 0; + + let mut field = vec![vec![0; n]; n]; + for i in 0..n { + for j in 0..n { + field[i][j] = iter.next().unwrap() as i64; + } + } + for i in 0..n { + for j in 0..n { + for ii in 0..20 { + let s = drill(&field, n, ii, i, j); + if s * m >= cost(ii) { + maxima = maxima.max(s); + } + } + } + } + println!("{}", maxima); +} \ No newline at end of file