/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 284.0 KiB
#2 Wrong Answer 3ms 320.0 KiB
#3 Wrong Answer 4ms 284.0 KiB

Code

// Author: @Drydock
use std::io::{self, Read};

fn main() {
    solve();
}

fn solve() {
    let mut input = String::new();
    io::stdin().read_to_string(&mut input).unwrap();
    let mut it = I::new(&input);
    let t: usize = it.n();
    let mut o = String::new();
    for _ in 0..t {
        let n: usize = it.n();
        let s = it.s();
        let p = it.s();
        if s == p {
            o.push_str("YES\n");
            continue;
        }
        if n == 1 {
            o.push_str("NO\n");
            continue;
        }
        if n == 2 {
            if p == b"01" || p == b"10" {
                o.push_str("YES\n");
            } else {
                o.push_str("NO\n");
            }
            continue;
        }
        let mut a0 = false;
        let mut a1 = false;
        let mut b0 = false;
        let mut b1 = false;
        for &c in s.iter() {
            if c == b'0' { a0 = true; } else { a1 = true; }
        }
        for &c in p.iter() {
            if c == b'0' { b0 = true; } else { b1 = true; }
        }
        if (a0 && a1) || (b0 && b1) {
            o.push_str("YES\n");
        } else {
            o.push_str("NO\n");
        }
    }
    print!("{}", o);
}

struct I<'a> {
    w: std::str::SplitWhitespace<'a>,
}

impl<'a> I<'a> {
    fn new(s: &'a str) -> Self {
        Self { w: s.split_whitespace() }
    }
    fn n<T: std::str::FromStr>(&mut self) -> T {
        self.w.next().unwrap().parse().ok().unwrap()
    }
    fn s(&mut self) -> Vec<u8> {
        self.w.next().unwrap().as_bytes().to_vec()
    }
}

Information

Submit By
Type
Submission
Problem
P1233 B. Make Binary Strings Equal
Contest
Happy New Year 2026
Language
Rust 2021 (Rust 1.75.0)
Submit At
2026-01-06 14:51:06
Judged At
2026-01-06 14:51:07
Judged By
Score
0
Total Time
4ms
Peak Memory
320.0 KiB