結果
| 問題 |
No.672 最長AB列
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-06-15 13:56:32 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,144 bytes |
| コンパイル時間 | 12,662 ms |
| コンパイル使用メモリ | 391,624 KB |
| 実行使用メモリ | 9,884 KB |
| 最終ジャッジ日時 | 2024-06-30 14:48:06 |
| 合計ジャッジ時間 | 15,827 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 6 TLE * 1 -- * 9 |
ソースコード
fn main(){
let s = getline();
let s = s.trim();
let length:isize = s.len() as isize;
let c = s.chars().collect::<Vec<char>>();
let mut ans:i32 = -1;
// println!("{:?}", s.char_at());
for i in 0..length {
ans = check_char(&c, length, length-i);
if ans != 0 {
break;
}
}
println!("{}", ans);
}
fn getline() -> String{
let mut __ret=String::new();
std::io::stdin().read_line(&mut __ret).ok();
return __ret;
}
fn check_char(c: &Vec<char>, length:isize, check_len: isize) -> i32{
let mut count_a:i32 = 0;
let mut count_b:i32 = 0;
let mut i:isize = 0;
//count A
//count B
while i + check_len <= length {
count_a = 0;
count_b = 0;
for j in i..(check_len+i) {
if c[j as usize] == 'A' {count_a+=1;}
if c[j as usize] == 'B' {count_b+=1;}
}
// println!("{}..{} countA={},countB={}", i, check_len+i, count_a, count_b);
if count_a == count_b {break;}
i+=1;
}
// println!("{:?}", c);
if count_a == count_b && count_a !=0 {return count_a+count_b}
return 0;
}