Submission #1405123
Source Code Expand
fn solve() -> String {
let (n, m) = readln();
let mut g = vec![Vec::new(); n];
for _ in 0..m {
let (a, b, c): (usize, usize, i64) = readln();
g[a-1].push((b-1, -c));
}
let mut cost = vec![i64::max_value(); n];
cost[0] = 0;
for i in 0..n {
for u in 0..n {
if cost[u] == i64::max_value() {
continue;
}
for &(v, c) in &g[u] {
if cost[v] > cost[u] + c {
cost[v] = cost[u] + c;
if i == n-1 && v == n-1 {
return "inf".to_string();
}
}
}
}
}
(-cost[n-1]).to_string()
}
fn main() {
println!("{}", solve());
}
// --- template ---
#[allow(unused_imports)]
use std::cmp::{max, min};
#[allow(unused_imports)]
use std::collections::HashSet;
pub trait FromLn {
fn fromln(s: &str) -> Self;
}
pub fn readln<T: FromLn>() -> T {
let mut buf = String::new();
let _ = ::std::io::stdin().read_line(&mut buf).unwrap();
T::fromln(buf.trim())
}
pub fn readlns<T: FromLn>(n: usize) -> Vec<T> {
let mut vs = vec![];
for _ in 0..n { vs.push(readln()); }
vs
}
macro_rules! fromln_primitives {
($($t:ty),*) => { $(
impl FromLn for $t {
fn fromln(s: &str) -> $t {
s.parse().unwrap()
}
}
)* }
}
fromln_primitives!(String, bool, f32, f64, isize, i8, i16, i32, i64, usize, u8, u16, u32, u64);
impl<T> FromLn for Vec<T> where T: FromLn {
fn fromln(s: &str) -> Vec<T> {
s.split_whitespace().map(T::fromln).collect()
}
}
impl FromLn for Vec<char> {
fn fromln(s: &str) -> Vec<char> {
s.chars().collect()
}
}
macro_rules! fromln_tuple {
($($t:ident),*) => {
impl<$($t),*> FromLn for ($($t),*) where $($t: FromLn),* {
fn fromln(s: &str) -> ($($t),*) {
let mut it = s.split_whitespace();
let t = ($($t::fromln(it.next().unwrap())),*);
assert_eq!(it.next(), None);
t
}
}
}
}
fromln_tuple!(A, B);
fromln_tuple!(A, B, C);
fromln_tuple!(A, B, C, D);
fromln_tuple!(A, B, C, D, E);
fromln_tuple!(A, B, C, D, E, F);
Submission Info
Submission Time |
|
Task |
D - Score Attack |
User |
ichyo |
Language |
Rust (1.15.1) |
Score |
400 |
Code Size |
2343 Byte |
Status |
AC |
Exec Time |
13 ms |
Memory |
4352 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
400 / 400 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
All |
sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_1.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, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_2.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
2 ms |
4352 KB |
sample_02.txt |
AC |
2 ms |
4352 KB |
sample_03.txt |
AC |
2 ms |
4352 KB |
subtask_1_1.txt |
AC |
2 ms |
4352 KB |
subtask_1_10.txt |
AC |
2 ms |
4352 KB |
subtask_1_11.txt |
AC |
2 ms |
4352 KB |
subtask_1_12.txt |
AC |
11 ms |
4352 KB |
subtask_1_13.txt |
AC |
3 ms |
4352 KB |
subtask_1_14.txt |
AC |
5 ms |
4352 KB |
subtask_1_15.txt |
AC |
13 ms |
4352 KB |
subtask_1_16.txt |
AC |
2 ms |
4352 KB |
subtask_1_17.txt |
AC |
2 ms |
4352 KB |
subtask_1_18.txt |
AC |
4 ms |
4352 KB |
subtask_1_19.txt |
AC |
8 ms |
4352 KB |
subtask_1_2.txt |
AC |
5 ms |
4352 KB |
subtask_1_20.txt |
AC |
3 ms |
4352 KB |
subtask_1_21.txt |
AC |
5 ms |
4352 KB |
subtask_1_22.txt |
AC |
9 ms |
4352 KB |
subtask_1_23.txt |
AC |
2 ms |
4352 KB |
subtask_1_24.txt |
AC |
7 ms |
4352 KB |
subtask_1_25.txt |
AC |
3 ms |
4352 KB |
subtask_1_26.txt |
AC |
5 ms |
4352 KB |
subtask_1_27.txt |
AC |
5 ms |
4352 KB |
subtask_1_3.txt |
AC |
4 ms |
4352 KB |
subtask_1_4.txt |
AC |
5 ms |
4352 KB |
subtask_1_5.txt |
AC |
3 ms |
4352 KB |
subtask_1_6.txt |
AC |
5 ms |
4352 KB |
subtask_1_7.txt |
AC |
4 ms |
4352 KB |
subtask_1_8.txt |
AC |
5 ms |
4352 KB |
subtask_1_9.txt |
AC |
2 ms |
4352 KB |