結果

問題 No.857 素振り
ユーザー HaarHaar
提出日時 2019-10-12 09:05:34
言語 Rust
(1.77.0 + proconio)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,202 bytes
コンパイル時間 18,239 ms
コンパイル使用メモリ 403,404 KB
最終ジャッジ日時 2024-11-14 21:45:16
合計ジャッジ時間 19,092 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
error: use of deprecated `try` macro
  --> src/main.rs:15:13
   |
15 |             try!(token.parse::<$t>())
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
...
51 |     input!(x: i64, y: i64, z: i64);
   |     ------------------------------ in this macro invocation
   |
   = note: in the 2018 edition `try` is a reserved keyword, and the `try!()` macro is deprecated
   = note: this error originates in the macro `get` which comes from the expansion of the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
help: you can use the `?` operator instead
   |
15 -             try!(token.parse::<$t>())
15 +             token.parse::<$t>()?
   |
help: alternatively, you can still access the deprecated `try!()` macro using the "raw identifier" syntax
   |
15 |             r#try!(token.parse::<$t>())
   |             ++

warning: unnecessary trailing semicolon
  --> src/main.rs:24:11
   |
24 |         )*;
   |           ^ help: remove this semicolon
...
51 |     input!(x: i64, y: i64, z: i64);
   |     ------------------------------ in this macro invocation
   |
   = note: `#[warn(redundant_semicolons)]` on by default
   = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0782]: trait objects must include the `dyn` keyword
  --> src/main.rs:50:29
   |
50 | fn solve() -> Result<(),Box<std::error::Error>>{
   |                             ^^^^^^^^^^^^^^^^^
   |
help: add `dyn` keyword before this trait
   |
50 | fn solve() -> Result<(),Box<dyn std::error::Error>>{
   |                             +++

For more information about this error, try `rustc --explain E0782`.
error: could not compile `main` (bin "main") due to 4 previous errors; 1 warning emitted

ソースコード

diff #

#![allow(unused_imports, unused_macros, dead_code, bare_trait_objects)]

macro_rules! get{
    ($t:ty) => {
        {
            let cin = stdin();
            let mut cin = cin.lock();
            
            let token =
                cin.by_ref().bytes().map(|c| c.unwrap() as char)
                .skip_while(|c| c.is_whitespace())
                .take_while(|c| !c.is_whitespace())
                .collect::<String>();

            try!(token.parse::<$t>())
        }
    }
}

macro_rules! input{
    ($($id:ident: $t:ty),*) => {
        $(
            let $id = get!($t);
        )*;
    }
}

macro_rules! input_vec{
    ($id:ident: Vec<$t:ty>, $n:expr) => {
        let n = $n;
        let mut $id: Vec<$t> = Vec::with_capacity(n);
        for _ in 0..n {
            let temp = get!($t);
            $id.push(temp);
        }
    }
}

use std::io::{Read,stdin};
use std::str::*;
use std::error::Error;
use std::fmt::Debug;
use std::ops::*;


fn main(){
    while let Ok(_) = solve() {}
}

fn solve() -> Result<(),Box<std::error::Error>>{
    input!(x: i64, y: i64, z: i64);

    let mut ans = z;
    if x <= z {ans -= 1;}
    if y <= z {ans -= 1;}

    println!("{}", ans);

    Ok(())
}
0