Please sign in first.
Submission #61255442
Source Code Expand
#![allow(dead_code)]
use proconio::{input, marker::Chars};
trait Bound<T> {
fn lower_bound(&self, x: &T) -> usize;
fn upper_bound(&self, x: &T) -> usize;
}
impl<T: PartialOrd> Bound<T> for [T] {
fn lower_bound(&self, x: &T) -> usize {
let (mut low, mut high) = (0, self.len());
while low + 1 < high {
let mid = (low + high) / 2;
if self[mid] < *x {
low = mid;
} else {
high = mid;
}
}
if self[low] < *x {
low + 1
} else {
low
}
}
fn upper_bound(&self, x: &T) -> usize {
let (mut low, mut high) = (0, self.len());
while low + 1 < high {
let mid = (low + high) / 2;
if self[mid] <= *x {
low = mid;
} else {
high = mid;
}
}
if self[low] <= *x {
low + 1
} else {
low
}
}
}
fn levenshtein_distance(word1: &str, word2: &str) -> usize {
let w1 = word1.chars().collect::<Vec<_>>();
let w2 = word2.chars().collect::<Vec<_>>();
let word1_length = w1.len() + 1;
let word2_length = w2.len() + 1;
let mut matrix = vec![vec![0; word1_length]; word2_length];
for i in 1..word1_length {
matrix[0][i] = i;
}
for j in 1..word2_length {
matrix[j][0] = j;
}
for j in 1..word2_length {
for i in 1..word1_length {
let x: usize = if w1[i - 1] == w2[j - 1] {
matrix[j - 1][i - 1]
} else {
1 + std::cmp::min(
std::cmp::min(matrix[j][i - 1], matrix[j - 1][i]),
matrix[j - 1][i - 1],
)
};
matrix[j][i] = x;
}
}
matrix[word2_length - 1][word1_length - 1]
}
fn main() {
input! {k:usize,s:Chars,t:Chars}
if s.len() == t.len() {
let mut diffs = 0;
for (si, ti) in s.iter().zip(t.iter()) {
if si != ti {
diffs += 1;
}
}
if diffs <= k {
println!("Yes");
} else {
println!("No")
}
} else {
let mut sidx = 0;
let mut tidx = 0;
let s_is_longer = s.len() > t.len();
let mut diffs = 0;
while s.len() > sidx && t.len() > tidx {
if s[sidx] != t[tidx] {
diffs += 1;
if s_is_longer {
sidx += 1;
} else {
tidx += 1
}
} else {
sidx += 1;
tidx += 1;
}
}
let slen = s.len();
let tlen = t.len();
if sidx != slen || tidx != tlen {
diffs += (slen - sidx).max(tlen - tidx);
}
if diffs <= k {
println!("Yes")
} else {
println!("No")
}
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Operate 1 |
| User | tsu7magu6 |
| Language | Rust (rustc 1.70.0) |
| Score | 350 |
| Code Size | 3111 Byte |
| Status | AC |
| Exec Time | 7 ms |
| Memory | 6756 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 350 / 350 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt, sample_06.txt |
| All | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt, sample_06.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 1 ms | 1936 KiB |
| sample_02.txt | AC | 1 ms | 2064 KiB |
| sample_03.txt | AC | 1 ms | 1944 KiB |
| sample_04.txt | AC | 1 ms | 1944 KiB |
| sample_05.txt | AC | 1 ms | 1972 KiB |
| sample_06.txt | AC | 1 ms | 1792 KiB |
| test_01.txt | AC | 1 ms | 2004 KiB |
| test_02.txt | AC | 1 ms | 1996 KiB |
| test_03.txt | AC | 1 ms | 2004 KiB |
| test_04.txt | AC | 1 ms | 2088 KiB |
| test_05.txt | AC | 1 ms | 1948 KiB |
| test_06.txt | AC | 4 ms | 6548 KiB |
| test_07.txt | AC | 5 ms | 6692 KiB |
| test_08.txt | AC | 7 ms | 6660 KiB |
| test_09.txt | AC | 6 ms | 6656 KiB |
| test_10.txt | AC | 6 ms | 6528 KiB |
| test_11.txt | AC | 3 ms | 4292 KiB |
| test_12.txt | AC | 2 ms | 4204 KiB |
| test_13.txt | AC | 2 ms | 2712 KiB |
| test_14.txt | AC | 2 ms | 2684 KiB |
| test_15.txt | AC | 5 ms | 6704 KiB |
| test_16.txt | AC | 6 ms | 6684 KiB |
| test_17.txt | AC | 6 ms | 6748 KiB |
| test_18.txt | AC | 5 ms | 6756 KiB |
| test_19.txt | AC | 6 ms | 6756 KiB |
| test_20.txt | AC | 7 ms | 6580 KiB |
| test_21.txt | AC | 5 ms | 6672 KiB |
| test_22.txt | AC | 6 ms | 6684 KiB |
| test_23.txt | AC | 6 ms | 6652 KiB |
| test_24.txt | AC | 6 ms | 6588 KiB |
| test_25.txt | AC | 5 ms | 6704 KiB |
| test_26.txt | AC | 6 ms | 6724 KiB |