Pagini recente » Cod sursa (job #2155425) | Cod sursa (job #2695469) | Cod sursa (job #1275033) | Cod sursa (job #1494303) | Cod sursa (job #3302651)
fn flip_line (a: &mut Vec<Vec<i32>>, n:i32, m:i32) -> bool{
let mut ok = false;
for i in 0..n {
let mut sum = 0;
for j in 0..m {
sum += a[i as usize][j as usize];
}
if sum < 0 {
ok = true;
for j in 0..m {
a[i as usize][j as usize] *= -1;
}
}
}
return ok;
}
fn flip_col (a: &mut Vec<Vec<i32>>, n:i32, m:i32) -> bool{
let mut ok = false;
for j in 0..m {
let mut sum = 0;
for i in 0..n {
sum += a[i as usize][j as usize];
}
if sum < 0 {
ok = true;
for i in 0..n {
a[i as usize][j as usize] *= -1;
}
}
}
return ok;
}
fn main() {
let file_content = std::fs::read_to_string("flip.in").unwrap();
let file_lines = file_content.split_whitespace().collect::<Vec<&str>>();
let n = file_lines[0].parse::<usize>().unwrap();
let m = file_lines[1].parse::<usize>().unwrap();
let mut a: Vec<Vec<i32>> = vec![vec![0; m]; n];
{
let mut number = 2;
for i in 0..n {
for j in 0..m {
a[i][j] = file_lines[number].parse::<i32>().unwrap();
number += 1;
}
}
}
while flip_col(&mut a, n as i32, m as i32) || flip_line(&mut a, n as i32, m as i32) {
}
{
let mut sum = 0;
for i in 0..n {
for j in 0..m {
sum += a[i as usize][j as usize];
}
}
std::fs::write("flip.out", format!("{}", sum)).unwrap();
}
}