Task: | Peli |
Sender: | xnor |
Submission time: | 2022-01-22 15:15:40 +0200 |
Language: | Rust |
Status: | READY |
Result: | 11 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 11 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
#2 | WRONG ANSWER | 0.01 s | 2, 3 | details |
#3 | WRONG ANSWER | 0.01 s | 3 | details |
#4 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
#5 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
Code
use std::io::{stdin, BufRead, BufReader};fn main() {let mut stdin = BufReader::new(stdin());let mut cur_line = String::new();stdin.read_line(&mut cur_line).unwrap();let mut nums = cur_line.split_whitespace().map(|s| s.parse::<usize>().unwrap());let n = nums.next().unwrap();let k = nums.next().unwrap();cur_line.clear();stdin.read_line(&mut cur_line).unwrap();let v = cur_line.as_bytes();let mut max_a = 0;let mut max_b = 0;let mut max_c = 0;let mut x = 0;let mut ck = 0;for i in 0..n {ck = (ck + 1).min(k);match v[i] {b'A' => max_a += 1,b'B' => max_b += 1,b'C' => max_c += 1,_ => (),}if max_a > 0 && max_b > 0 && max_c > 0 && ck >= 3 {x += 1;max_a -= 1;max_b -= 1;max_c -= 1;ck -= 3;}max_a = max_a.min(ck);max_b = max_b.min(ck);max_c = max_c.min(ck);}println!("{}", x);}
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
100000 3 BBAACBCBACBACABBCBAABCBCCBCCAA... |
correct output |
---|
18201 |
user output |
---|
18201 |
Test 2
Group: 2, 3
Verdict: WRONG ANSWER
input |
---|
100000 10 BAACABCCBCBAACBBCCCCABBBBACCBA... |
correct output |
---|
29684 |
user output |
---|
28860 |
Test 3
Group: 3
Verdict: WRONG ANSWER
input |
---|
100000 50 ACAABCBBAAAACCBBABACACACBCAACA... |
correct output |
---|
32740 |
user output |
---|
32579 |
Test 4
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
3 1 ABC |
correct output |
---|
0 |
user output |
---|
0 |
Test 5
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
3 2 ABC |
correct output |
---|
0 |
user output |
---|
0 |