day 05
This commit is contained in:
parent
e0fa04d075
commit
d93ee04c32
4 changed files with 79 additions and 4 deletions
|
@ -1,5 +1,3 @@
|
||||||
use std::collections::*;
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let lines: Vec<String> = std::io::stdin().lines().map(|x| x.unwrap()).collect();
|
let lines: Vec<String> = std::io::stdin().lines().map(|x| x.unwrap()).collect();
|
||||||
let mut result = 0;
|
let mut result = 0;
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
use std::collections::*;
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let lines: Vec<String> = std::io::stdin().lines().map(|x| x.unwrap()).collect();
|
let lines: Vec<String> = std::io::stdin().lines().map(|x| x.unwrap()).collect();
|
||||||
let mut result = 0;
|
let mut result = 0;
|
||||||
|
|
38
examples/day05_1.rs
Normal file
38
examples/day05_1.rs
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
fn main() {
|
||||||
|
let mut lines = std::io::stdin().lines();
|
||||||
|
let mut crates = Vec::new();
|
||||||
|
let mut line = lines.next().unwrap().unwrap();
|
||||||
|
let crate_count = line.len()/4 + 1;
|
||||||
|
for _ in 0..crate_count {
|
||||||
|
crates.push(vec![]);
|
||||||
|
}
|
||||||
|
loop {
|
||||||
|
if line.chars().nth(1).unwrap().is_numeric() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for i in 0..crate_count {
|
||||||
|
let c = line.chars().nth(4*i+1).unwrap();
|
||||||
|
if c != ' ' {
|
||||||
|
crates[i].insert(0, c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
line = lines.next().unwrap().unwrap();
|
||||||
|
}
|
||||||
|
lines.next().unwrap().unwrap();
|
||||||
|
while let Some(Ok(line)) = lines.next() {
|
||||||
|
let mut parts = line.split(" ");
|
||||||
|
let n: usize = parts.nth(1).unwrap().parse().unwrap();
|
||||||
|
let from: usize = parts.nth(1).unwrap().parse().unwrap();
|
||||||
|
let to: usize = parts.nth(1).unwrap().parse().unwrap();
|
||||||
|
for _ in 0..n {
|
||||||
|
let c = crates[from-1].pop().unwrap();
|
||||||
|
crates[to-1].push(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for c in crates.iter_mut() {
|
||||||
|
print!("{}", c.pop().unwrap());
|
||||||
|
}
|
||||||
|
println!();
|
||||||
|
|
||||||
|
}
|
41
examples/day05_2.rs
Normal file
41
examples/day05_2.rs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
fn main() {
|
||||||
|
let mut lines = std::io::stdin().lines();
|
||||||
|
let mut crates = Vec::new();
|
||||||
|
let mut line = lines.next().unwrap().unwrap();
|
||||||
|
let crate_count = line.len()/4 + 1;
|
||||||
|
for _ in 0..crate_count {
|
||||||
|
crates.push(vec![]);
|
||||||
|
}
|
||||||
|
loop {
|
||||||
|
if line.chars().nth(1).unwrap().is_numeric() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for i in 0..crate_count {
|
||||||
|
let c = line.chars().nth(4*i+1).unwrap();
|
||||||
|
if c != ' ' {
|
||||||
|
crates[i].insert(0, c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
line = lines.next().unwrap().unwrap();
|
||||||
|
}
|
||||||
|
lines.next().unwrap().unwrap();
|
||||||
|
while let Some(Ok(line)) = lines.next() {
|
||||||
|
let mut parts = line.split(" ");
|
||||||
|
let n: usize = parts.nth(1).unwrap().parse().unwrap();
|
||||||
|
let from: usize = parts.nth(1).unwrap().parse().unwrap();
|
||||||
|
let to: usize = parts.nth(1).unwrap().parse().unwrap();
|
||||||
|
let mut crane = Vec::new();
|
||||||
|
for _ in 0..n {
|
||||||
|
crane.push(crates[from-1].pop().unwrap());
|
||||||
|
}
|
||||||
|
for _ in 0..n {
|
||||||
|
crates[to-1].push(crane.pop().unwrap());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for c in crates.iter_mut() {
|
||||||
|
print!("{}", c.pop().unwrap());
|
||||||
|
}
|
||||||
|
println!();
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue