提出 #37630463
ソースコード 拡げる
// This code is generated by [rsk0315/cargo-atcoder](https://github.com/rsk0315/cargo-atcoder) forked from [tanakh/cargo-atcoder](https://github.com/tanakh/cargo-atcoder).
// Original source code:
const _: &str = r#"
use std::cmp::Ordering::{Equal, Greater, Less};
use proconio::{input, marker::Bytes};
use nekolib::{ds::N1Rmq, seq::SuffixArray};
fn main() {
input! {
s: Bytes,
t: Bytes,
}
let lcp = LcpQuery::new(&s, &t);
let n = s.len();
let m = t.len();
let max = m + n;
let mut v = vec![0; 2 * max + 1];
let off = max;
v[off + 1] = 0;
let mut from_plus = vec![];
let mut last = (0, 0);
'outer: for d in 0..=max {
for k in (off - d..=off + d).step_by(2) {
let mut x = if k == off - d || (k != off + d && v[k - 1] < v[k + 1])
{
from_plus.push(d << 32 | k);
v[k + 1]
} else {
v[k - 1] + 1
};
let mut y = x + off - k;
if x < n && y < m {
let diag = lcp.query(x, y);
x += diag;
y += diag;
}
v[k] = x;
if x >= n && y >= m {
last = (d, k);
break 'outer;
}
}
}
let mut from_plus: DecreasingMembershipQuery = from_plus.into();
let mut res = vec![];
let (mut d, mut k) = last;
let (mut x, mut y) = (n, m);
while x > 0 || y > 0 {
while x > 0 && y > 0 && s[x - 1] == t[y - 1] {
x -= 1;
y -= 1;
res.push(s[x]);
// res.push(Zero(s[x]));
}
if (x, y) == (0, 0) {
break;
}
if from_plus.contains(d << 32 | k) {
k += 1;
y -= 1;
// res.push(Pos(t[y]));
} else {
k -= 1;
x -= 1;
// res.push(Neg(s[x]));
}
d -= 1;
}
let res: String = res.into_iter().rev().map(|b| b as char).collect();
println!("{}", res);
{
let d = last.0;
assert_eq!(2 * res.len() + d, m + n);
eprintln!("{} {} {}", m, n, d);
}
}
// #[derive(Clone, Copy, Debug, Eq, PartialEq)]
// enum Diff {
// Pos(char),
// Zero(char),
// Neg(char),
// }
// use Diff::{Neg, Pos, Zero};
struct LcpQuery {
isa: Vec<usize>,
lcpa: N1Rmq<usize>,
first_len: usize,
}
impl LcpQuery {
pub fn new(s: &[u8], t: &[u8]) -> Self {
let max = *s.iter().chain(t).max().unwrap_or(&0);
let s_t: Vec<_> = s
.iter()
.copied()
.chain(std::iter::once(max + 1))
.chain(t.iter().copied())
.collect();
let sa = SuffixArray::from_bytes(s_t);
let lcpa = sa.lcpa();
let isa = {
let mut isa = vec![0; s.len() + t.len() + 2];
for i in 0..isa.len() {
isa[sa[i]] = i;
}
isa
};
Self { isa, lcpa: lcpa.into(), first_len: s.len() }
}
pub fn query(&self, i: usize, j: usize) -> usize {
let si = self.isa[i] + 1;
let sj = self.isa[self.first_len + 1 + j] + 1;
let (l, r) = (si.min(sj), si.max(sj));
*self.lcpa.min(l, r)
}
}
struct DecreasingMembershipQuery(Vec<usize>);
impl From<Vec<usize>> for DecreasingMembershipQuery {
fn from(sorted_set: Vec<usize>) -> Self { Self(sorted_set) }
}
impl DecreasingMembershipQuery {
pub fn contains(&mut self, i: usize) -> bool {
let set = &mut self.0;
while let Some(x) = set.pop() {
match x.cmp(&i) {
Less => {
set.push(x);
break;
}
Equal => {
set.push(x);
return true;
}
Greater => {}
}
}
false
}
}
"#;
fn main() {
let exe = std::env::temp_dir().join("bin623EDB2A");
std::io::Write::write_all(&mut std::fs::File::create(&exe).unwrap(), &decode(BIN)).unwrap();
#[cfg(unix)]
fn executable(exe: &std::path::Path) {
std::fs::set_permissions(exe, std::os::unix::fs::PermissionsExt::from_mode(0o755)).unwrap();
}
#[cfg(not(unix))]
fn executable(_: &std::path::Path) {}
executable(&exe);
std::process::exit(std::process::Command::new(&exe).status().unwrap().code().unwrap())
}
fn decode(v: &str) -> Vec<u8> {
let mut ret = vec![];
let mut buf = 0;
let mut tbl = vec![64; 256];
for i in 0..64 { tbl[TBL[i] as usize] = i as u8; }
for (i, c) in v.bytes().filter_map(|c| { let c = tbl[c as usize]; if c < 64 { Some(c) } else { None } }).enumerate() {
match i % 4 {
0 => buf = c << 2,
1 => { ret.push(buf | c >> 4); buf = c << 4; }
2 => { ret.push(buf | c >> 2); buf = c << 6; }
3 => ret.push(buf | c),
_ => unreachable!(),
}
}
ret
}
const TBL: &[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
const BIN: &str = "
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
W11BXEFdQV5BX0iLdfhIi30Qi0sESAHOixNIAdfJ6wJXXllIifBIKchaSCnXWYk5W13DaB4AAABa6MUA
AABQUk9UX0VYRUN8UFJPVF9XUklURSBmYWlsZWQuCgAKACRJbmZvOiBUaGlzIGZpbGUgaXMgcGFja2Vk
IHdpdGggdGhlIFVQWCBleGVjdXRhYmxlIHBhY2tlciBodHRwOi8vdXB4LnNmLm5ldCAkCgAkSWQ6IFVQ
WCA0LjAxIENvcHlyaWdodCAoQykgMTk5Ni0yMDIyIHRoZSBVUFggVGVhbS4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4gJAoAkJCQag5aV17rAV5qAl9qAVgPBWp/X2o8WA8FXyn2agJYDwWFwHjcUEiNtw8AAACtg+D+
QYnGVluLFkiNjfX///9EizlMKflFKfdJAc5fUlBXUU0pyUGDyP9qIkFaUl5qA1op/2oJWA8FSIlEJBBQ
WlNerVBIieFJidWtUK1BkEiJ917/1VlIi3QkGEiLfCQQagVaagpYDwVB/+Vd6Hr///8vcHJvYy9zZWxm
L2V4ZQAAAQAAiggAAIYGAAAOSQMAGgMAdBJ8Ggg2Ct9V9xgLKdkVSgc8lNrznlW1S45V2wl+X5UE/Md+
tlQh0J2Q78Q0UpLEkvMkEVOMvrWYHeWKwfCWH8VCvgC1J42rmOBud3GA7U8RabBaL9g6qcTHce3S8gKI
FvfSA/cKOO+HXIuNUdCDmrOa8ymHgcDoY340fNMBlzyOpUahlOIUj3wqfUmOmu0vq47s0wfaO5P0Rssj
vGN4xBPwg7YYM5aJICKBEs+R93MkFN6KKj6VTMAsaSz4iVWXIu4K7rTy7/Wp7aArygughxW4PhrKLtAe
CykomF+nXLyw9jIiwGuT7gfvLDfIxJ91u/oQDEtq2B2Jg2GXeJRyiyj1uhTWkU58jq6F3M7XLUwNobzh
FMZ2odgA0cu00VTvaIdI9tLd62JQVDv+bEq/vBnLuDPrSzAYp4T7MQGqS5VBulBhryaxzRo3OU5npumW
9RrgqWXV0NudUk/AsMGz59quhLszskP+uQKQ9usm/Dybh5NBaRpmBK/whjPXuPeasCqosawPQMl3O/rl
8wvSDQbbbJ1QE4lOesdTtKiSjceNpXMM0cRwi4wzUUkJYEGz+FdM1lNFH/ddg8T5Ntt8qJa865ElSoT8
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
";
提出情報
| 提出日時 |
|
| 問題 |
F - LCS |
| ユーザ |
rsk0315 |
| 言語 |
Rust (1.42.0) |
| 得点 |
100 |
| コード長 |
41108 Byte |
| 結果 |
AC |
| 実行時間 |
354 ms |
| メモリ |
142940 KiB |
ジャッジ結果
| セット名 |
All |
| 得点 / 配点 |
100 / 100 |
| 結果 |
|
| セット名 |
テストケース |
| All |
0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13 |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 0_00 |
AC |
11 ms |
2124 KiB |
| 0_01 |
AC |
5 ms |
2136 KiB |
| 0_02 |
AC |
6 ms |
2140 KiB |
| 0_03 |
AC |
7 ms |
2072 KiB |
| 1_00 |
AC |
7 ms |
2176 KiB |
| 1_01 |
AC |
8 ms |
2120 KiB |
| 1_02 |
AC |
9 ms |
2212 KiB |
| 1_03 |
AC |
353 ms |
142940 KiB |
| 1_04 |
AC |
354 ms |
142800 KiB |
| 1_05 |
AC |
353 ms |
142740 KiB |
| 1_06 |
AC |
8 ms |
2296 KiB |
| 1_07 |
AC |
39 ms |
5236 KiB |
| 1_08 |
AC |
72 ms |
9612 KiB |
| 1_09 |
AC |
90 ms |
13864 KiB |
| 1_10 |
AC |
120 ms |
20888 KiB |
| 1_11 |
AC |
158 ms |
29364 KiB |
| 1_12 |
AC |
181 ms |
36744 KiB |
| 1_13 |
AC |
242 ms |
54936 KiB |