結果
問題 | No.18 うーさー暗号 |
ユーザー |
![]() |
提出日時 | 2023-04-05 12:02:56 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 1 ms / 5,000 ms |
コード長 | 3,721 bytes |
コンパイル時間 | 14,694 ms |
コンパイル使用メモリ | 405,504 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-01 22:47:55 |
合計ジャッジ時間 | 15,692 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 13 |
ソースコード
use std::io::*;use std::str::FromStr;//use std::num;//use std::cmp;const CHARSET: &str = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ";fn main() {let s: String = read();for _i in 0..s.len(){let mut result = get_position(s[_i.._i+1].to_string());while result <= _i{result += 26;}print!("{}",CHARSET[result - _i - 1..result - _i].to_string());}}/*pub fn get_string_from_position(x: usize, i:usize) -> String {}*/pub fn get_position(x: String) -> usize {let result = CHARSET.find(&x);let answer;if let Some(index) = result {answer = index;} else {answer = 0;}answer}pub fn upper_lower(x: char) -> char {let result: char;if x.is_uppercase() {result = x.to_ascii_lowercase();} else if x.is_lowercase() {result = x.to_ascii_uppercase();} else {result = x;}result}pub fn max(x: isize, y: isize, z: isize) -> isize {let result;if x >= y && y >= z {result = x;} else if x >= z && z >= y {result = x;} else if y >= x && x >= z {result = y;} else if y >= z && z >= x {result = y;} else if z >= x && x >= y {result = z;} else {result = z;}result}pub fn min(x: isize, y: isize, z: isize) -> isize {let result;if x <= y && y <= z {result = x;} else if x <= z && z <= y {result = x;} else if y <= x && x <= z {result = y;} else if y <= z && z <= x {result = y;} else if z <= x && x <= y {result = z;} else {result = z;}result}pub fn read_line() -> String {let mut s: String = String::new();std::io::stdin().read_line(&mut s).ok();s}pub fn read<T: FromStr>() -> T {let stdin = stdin();let stdin = stdin.lock();let token: String = stdin.bytes().map(|c| c.expect("failed to read char") as char).skip_while(|c| c.is_whitespace()).take_while(|c| !c.is_whitespace()).collect();token.parse().ok().expect("failed to parse token")}pub fn read_array() -> Vec<char> {let array: String = read();let chars: Vec<char> = array.trim().chars().collect::<Vec<char>>();chars}pub fn get_data() -> Vec<u64> {let mut s: String = String::new();std::io::stdin().read_line(&mut s).ok();let vec: Vec<u64> = s.trim().split_whitespace().map(|e| e.parse().ok().unwrap()).collect();vec}pub fn get_chars() -> Vec<char> {let mut s: String = String::new();std::io::stdin().read_line(&mut s).ok();let vec: Vec<char> = s.trim().chars().collect::<Vec<char>>();vec}