Submission #1305480
Source Code Expand
use std::fmt::Debug; use std::io; use std::io::{Read, Stdin}; use std::str; use std::str::FromStr; use std::usize; use std::cmp; use std::collections::vec_deque::VecDeque; use std::i64::MAX; fn main() { let mut sc = Scanner::new(); let n = sc.parse::<usize>(); let l = sc.parse::<i64>(); let t = sc.parse::<i64>(); let mut x: Vec<i64> = vec![0; n]; let mut w: Vec<usize> = vec![0; n]; for i in 0..n { x[i] = sc.parse::<i64>(); w[i] = sc.parse::<usize>(); } let cross_count = (0..n) .map(|i| { let w0 = w[0]; let wi = w[i]; if w0 == wi { return 0; } let interval; if w0 == 1 { interval = x[i] - x[0]; } else { interval = x[0] + l - x[i]; } if interval > t * 2 { return 0; } let time = t * 2 - interval; let count; if time % l == 0 && w[0] == 1 { count = time / l; } else { count = time / l + 1; } return count; }) .collect::<Vec<i64>>(); let count_sum: i64 = cross_count.iter().sum::<i64>() % (n as i64); let position; let num; if w[0] == 1 { position = (x[0] + t) % l; num = count_sum; } else { position = (x[0] - (t % l) + l) % l; num = (n as i64) - count_sum; } let mut positions: Vec<i64> = Vec::new(); for i in 0..n { let p; if w[i] == 1 { p = (x[i] + t) % l; } else { p = (x[i] - (t % l) + l) % l; } positions.push(p); } positions.sort(); let mut a = 0; for i in 0..n { if positions[i] == position { a = i; break; } } let mut ans: Vec<i64> = vec![0;n]; for i in 0..n { let idx = (i + num as usize) % n; let p = (a + i as usize) % n; ans[idx] = positions[p]; } for a in &ans { println!("{}", a); } } struct Scanner { stdin: Stdin, buf: Vec<u8>, } impl Scanner { fn new() -> Scanner { Scanner { stdin: io::stdin(), buf: Vec::with_capacity(256), } } fn parse<T: FromStr>(&mut self) -> T where <T as FromStr>::Err: Debug { self.buf.clear(); let mut it = self.stdin.lock().bytes(); let mut c = it.next().unwrap().unwrap(); while c == ' ' as u8 || c == '\n' as u8 { c = it.next().unwrap().unwrap(); } while !(c == ' ' as u8 || c == '\n' as u8) { self.buf.push(c); c = it.next().unwrap().unwrap(); } str::from_utf8(&self.buf).unwrap().parse::<T>().unwrap() } }
Submission Info
Submission Time | |
---|---|
Task | C - Ants on a Circle |
User | kenkoooo |
Language | Rust (1.15.1) |
Score | 700 |
Code Size | 2984 Byte |
Status | AC |
Exec Time | 223 ms |
Memory | 11388 KB |
Compile Error
warning: unused import: `std::cmp`, #[warn(unused_imports)] on by default --> ./Main.rs:7:5 | 7 | use std::cmp; | ^^^^^^^^ warning: unused import: `std::collections::vec_deque::VecDeque`, #[warn(unused_imports)] on by default --> ./Main.rs:8:5 | 8 | use std::collections::vec_deque::VecDeque; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ warning: unused import: `std::i64::MAX`, #[warn(unused_imports)] on by default --> ./Main.rs:9:5 | 9 | use std::i64::MAX; | ^^^^^^^^^^^^^
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt |
All | sample_01.txt, sample_02.txt, sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 2 ms | 4352 KB |
sample_02.txt | AC | 2 ms | 4352 KB |
subtask_1_01.txt | AC | 131 ms | 6908 KB |
subtask_1_02.txt | AC | 107 ms | 6780 KB |
subtask_1_03.txt | AC | 223 ms | 11388 KB |
subtask_1_04.txt | AC | 216 ms | 11388 KB |
subtask_1_05.txt | AC | 34 ms | 4352 KB |
subtask_1_06.txt | AC | 50 ms | 4476 KB |
subtask_1_07.txt | AC | 203 ms | 11004 KB |
subtask_1_08.txt | AC | 209 ms | 11132 KB |
subtask_1_09.txt | AC | 131 ms | 6780 KB |
subtask_1_10.txt | AC | 117 ms | 6652 KB |
subtask_1_11.txt | AC | 29 ms | 4476 KB |
subtask_1_12.txt | AC | 194 ms | 9212 KB |
subtask_1_13.txt | AC | 140 ms | 7036 KB |
subtask_1_14.txt | AC | 125 ms | 6908 KB |
subtask_1_15.txt | AC | 2 ms | 4352 KB |
subtask_1_16.txt | AC | 2 ms | 4352 KB |