Submission #2036538
Source Code Expand
/**
* _ _ __ _ _ _ _ _ _ _
* | | | | / / | | (_) | (_) | | (_) | |
* | |__ __ _| |_ ___ ___ / /__ ___ _ __ ___ _ __ ___| |_ _| |_ ___ _____ ______ _ __ _ _ ___| |_ ______ ___ _ __ _ _ __ _ __ ___| |_ ___
* | '_ \ / _` | __/ _ \ / _ \ / / __/ _ \| '_ ` _ \| '_ \ / _ \ __| | __| \ \ / / _ \______| '__| | | / __| __|______/ __| '_ \| | '_ \| '_ \ / _ \ __/ __|
* | | | | (_| | || (_) | (_) / / (_| (_) | | | | | | |_) | __/ |_| | |_| |\ V / __/ | | | |_| \__ \ |_ \__ \ | | | | |_) | |_) | __/ |_\__ \
* |_| |_|\__,_|\__\___/ \___/_/ \___\___/|_| |_| |_| .__/ \___|\__|_|\__|_| \_/ \___| |_| \__,_|___/\__| |___/_| |_|_| .__/| .__/ \___|\__|___/
* | | | | | |
* |_| |_| |_|
*
* https://github.com/hatoo/competitive-rust-snippets
*/
#[allow(unused_imports)]
use std::cmp::{max, min, Ordering};
#[allow(unused_imports)]
use std::collections::{BTreeMap, BTreeSet, BinaryHeap, HashMap, HashSet, VecDeque};
#[allow(unused_imports)]
use std::iter::FromIterator;
#[allow(unused_imports)]
use std::io::{stdin, stdout, BufWriter, Write};
mod util {
use std::io::{stdin, stdout, BufWriter, StdoutLock};
use std::str::FromStr;
use std::fmt::Debug;
#[allow(dead_code)]
pub fn line() -> String {
let mut line: String = String::new();
stdin().read_line(&mut line).unwrap();
line.trim().to_string()
}
#[allow(dead_code)]
pub fn gets<T: FromStr>() -> Vec<T>
where
<T as FromStr>::Err: Debug,
{
let mut line: String = String::new();
stdin().read_line(&mut line).unwrap();
line.split_whitespace()
.map(|t| t.parse().unwrap())
.collect()
}
#[allow(dead_code)]
pub fn with_bufwriter<F: FnOnce(BufWriter<StdoutLock>) -> ()>(f: F) {
let out = stdout();
let writer = BufWriter::new(out.lock());
f(writer)
}
}
#[allow(unused_macros)]
macro_rules ! get { ( $ t : ty ) => { { let mut line : String = String :: new ( ) ; stdin ( ) . read_line ( & mut line ) . unwrap ( ) ; line . trim ( ) . parse ::<$ t > ( ) . unwrap ( ) } } ; ( $ ( $ t : ty ) ,* ) => { { let mut line : String = String :: new ( ) ; stdin ( ) . read_line ( & mut line ) . unwrap ( ) ; let mut iter = line . split_whitespace ( ) ; ( $ ( iter . next ( ) . unwrap ( ) . parse ::<$ t > ( ) . unwrap ( ) , ) * ) } } ; ( $ t : ty ; $ n : expr ) => { ( 0 ..$ n ) . map ( | _ | get ! ( $ t ) ) . collect ::< Vec < _ >> ( ) } ; ( $ ( $ t : ty ) ,*; $ n : expr ) => { ( 0 ..$ n ) . map ( | _ | get ! ( $ ( $ t ) ,* ) ) . collect ::< Vec < _ >> ( ) } ; ( $ t : ty ;; ) => { { let mut line : String = String :: new ( ) ; stdin ( ) . read_line ( & mut line ) . unwrap ( ) ; line . split_whitespace ( ) . map ( | t | t . parse ::<$ t > ( ) . unwrap ( ) ) . collect ::< Vec < _ >> ( ) } } ; }
#[allow(unused_macros)]
macro_rules ! debug { ( $ ( $ a : expr ) ,* ) => { println ! ( concat ! ( $ ( stringify ! ( $ a ) , " = {:?}, " ) ,* ) , $ ( $ a ) ,* ) ; } }
#[allow(dead_code)]
fn main() {
let n = get!(usize);
let memo: Vec<((usize, usize), (usize, usize))> = (0..n)
.map(|_| {
let line = util::line();
let mut split = line.split('-');
let from: usize = split.next().unwrap().parse().unwrap();
let to: usize = split.next().unwrap().parse().unwrap();
((from / 100, from % 100), (to / 100, to % 100))
})
.collect();
let mut line = vec![false; 24 * 12 + 1];
for &((from_h, from_m), (to_h, to_m)) in &memo {
let from = from_h * 12 + from_m / 5;
let to = to_h * 12 + (to_m + 4) / 5;
for i in from..to {
line[i] = true;
}
}
let mut l = None;
for (i, &b) in line.iter().enumerate() {
if !b && l.is_some() {
let a = l.unwrap();
let b = i;
println!(
"{:02}{:02}-{:02}{:02}",
a / 12,
(a % 12) * 5,
b / 12,
(b % 12) * 5
);
l = None;
}
if b && l.is_none() {
l = Some(i);
}
}
if let Some(a) = l {
println!("{:02}{:02}-2400", a / 12, (a % 12) * 5,);
}
}
Submission Info
Submission Time |
|
Task |
D - 感雨時刻の整理 |
User |
hatoo |
Language |
Rust (1.15.1) |
Score |
100 |
Code Size |
4840 Byte |
Status |
AC |
Exec Time |
14 ms |
Memory |
4352 KB |
Judge Result
Set Name |
all |
Score / Max Score |
100 / 100 |
Status |
|
Set Name |
Test Cases |
all |
00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, cho_cho_chokudai.txt, chokudai_ga_cho.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt |
Case Name |
Status |
Exec Time |
Memory |
00_sample_01.txt |
AC |
2 ms |
4352 KB |
00_sample_02.txt |
AC |
2 ms |
4352 KB |
00_sample_03.txt |
AC |
2 ms |
4352 KB |
cho_cho_chokudai.txt |
AC |
14 ms |
4352 KB |
chokudai_ga_cho.txt |
AC |
10 ms |
4352 KB |
test_01.txt |
AC |
2 ms |
4352 KB |
test_02.txt |
AC |
2 ms |
4352 KB |
test_03.txt |
AC |
2 ms |
4352 KB |
test_04.txt |
AC |
2 ms |
4352 KB |
test_05.txt |
AC |
2 ms |
4352 KB |
test_06.txt |
AC |
2 ms |
4352 KB |
test_07.txt |
AC |
2 ms |
4352 KB |
test_08.txt |
AC |
2 ms |
4352 KB |
test_09.txt |
AC |
2 ms |
4352 KB |
test_10.txt |
AC |
2 ms |
4352 KB |
test_11.txt |
AC |
2 ms |
4352 KB |
test_12.txt |
AC |
2 ms |
4352 KB |
test_13.txt |
AC |
2 ms |
4352 KB |
test_14.txt |
AC |
2 ms |
4352 KB |
test_15.txt |
AC |
2 ms |
4352 KB |
test_16.txt |
AC |
2 ms |
4352 KB |
test_17.txt |
AC |
2 ms |
4352 KB |
test_18.txt |
AC |
2 ms |
4352 KB |
test_19.txt |
AC |
2 ms |
4352 KB |
test_20.txt |
AC |
2 ms |
4352 KB |
test_21.txt |
AC |
8 ms |
4352 KB |
test_22.txt |
AC |
9 ms |
4352 KB |
test_23.txt |
AC |
8 ms |
4352 KB |
test_24.txt |
AC |
9 ms |
4352 KB |
test_25.txt |
AC |
9 ms |
4352 KB |
test_26.txt |
AC |
8 ms |
4352 KB |
test_27.txt |
AC |
8 ms |
4352 KB |
test_28.txt |
AC |
8 ms |
4352 KB |
test_29.txt |
AC |
2 ms |
4352 KB |
test_30.txt |
AC |
2 ms |
4352 KB |
test_31.txt |
AC |
3 ms |
4352 KB |
test_32.txt |
AC |
2 ms |
4352 KB |
test_33.txt |
AC |
6 ms |
4352 KB |
test_34.txt |
AC |
2 ms |
4352 KB |
test_35.txt |
AC |
2 ms |
4352 KB |
test_36.txt |
AC |
10 ms |
4352 KB |
test_37.txt |
AC |
8 ms |
4352 KB |
test_38.txt |
AC |
8 ms |
4352 KB |
test_39.txt |
AC |
8 ms |
4352 KB |
test_40.txt |
AC |
8 ms |
4352 KB |
test_41.txt |
AC |
11 ms |
4352 KB |
test_42.txt |
AC |
11 ms |
4352 KB |
test_43.txt |
AC |
11 ms |
4352 KB |