QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#427278#8776. Not Another Constructive!ucup-team635#AC ✓48ms110200kbRust5.0kb2024-06-01 11:47:382024-06-01 11:47:38

Judging History

你现在查看的是最新测评结果

  • [2024-06-01 11:47:38]
  • 评测
  • 测评结果:AC
  • 用时:48ms
  • 内存:110200kb
  • [2024-06-01 11:47:38]
  • 提交

answer

fn main() {
    input! {
        n: usize,
        k: usize,
        s: bytes,
    }
    const L: usize = 40;
    type B = [usize; L];
    let w = std::mem::size_of::<usize>() * 8;
    let shift_or = |a: &mut B, b: &B, s: usize| {
        let q = s / w;
        let r = s % w;
        if r == 0 {
            for (a, b) in a[q..].iter_mut().zip(b.iter()) {
                *a |= *b;
            }
        } else {
            for (a, b) in a[q..].iter_mut().zip(b.iter()) {
                *a |= *b << r;
            }
            for (a, b) in a[(q + 1)..].iter_mut().zip(b.iter()) {
                *a |= *b >> (w - r);
            }
        }
    };
    let at = |b: &B, x: usize| -> bool { b[x / w] >> (x % w) & 1 == 1 };
    // i, a, ab, abc
    let mut dp = (0..=n)
        .map(|i| vec![vec![[0; L]; 401]; i + 1])
        .collect::<Vec<_>>();
    dp[0][0][0][0] |= 1;
    for (i, s) in s.iter().enumerate() {
        let src = std::mem::take(&mut dp[i]);
        let dst = &mut dp[i + 1];
        if *s != b'N' && *s != b'A' && *s != b'C' {
            for (dst, src) in dst.iter_mut().zip(src.iter()) {
                for (dst, src) in dst.iter_mut().zip(src.iter()) {
                    shift_or(dst, src, 0);
                }
            }
        }
        if *s == b'N' || *s == b'?' {
            for (dst, src) in dst[1..].iter_mut().zip(src.iter()) {
                for (dst, src) in dst.iter_mut().zip(src.iter()) {
                    shift_or(dst, src, 0);
                }
            }
        }
        if *s == b'A' || *s == b'?' {
            for (add, (dst, src)) in dst.iter_mut().zip(src.iter()).enumerate() {
                if dst.len() < add {
                    continue;
                }
                for (dst, src) in dst[add..].iter_mut().zip(src.iter()) {
                    shift_or(dst, src, 0);
                }
            }
        }
        if *s == b'C' || *s == b'?' {
            for (dst, src) in dst.iter_mut().zip(src.iter()) {
                for (add, (dst, src)) in dst.iter_mut().zip(src.iter()).enumerate() {
                    shift_or(dst, src, add);
                }
            }
        }
        dp[i] = src;
    }
    if dp[n].iter().flatten().all(|dp| !at(dp, k)) {
        println!("-1");
        return;
    }
    let mut pos = (0, 0, 0);
    for (i, dp) in dp[n].iter().enumerate() {
        for (j, dp) in dp.iter().enumerate() {
            if at(dp, k) {
                pos = (i, j, k);
            }
        }
    }
    let mut ans = s.clone();
    for (i, s) in s.iter().enumerate().rev() {
        assert!(at(&dp[i + 1][pos.0][pos.1], pos.2));
        let mut c = None;
        if "NAC".bytes().all(|c| c != *s) && dp[i].len() > pos.0 && at(&dp[i][pos.0][pos.1], pos.2) {
            if *s == b'?' {
                c = Some(b'B');
            } else {
                c = Some(*s);
            }
        }
        if c.is_none() && (*s == b'N' || *s == b'?') && pos.0 > 0 && at(&dp[i][pos.0 - 1][pos.1], pos.2) {
            pos.0 -= 1;
            c = Some(b'N');
        }
        if c.is_none() && (*s == b'A' || *s == b'?') && pos.0 <= pos.1 && at(&dp[i][pos.0][pos.1 - pos.0], pos.2) {
            pos.1 -= pos.0;
            c = Some(b'A');
        }
        if c.is_none() && (*s == b'C' || *s == b'?') {
            assert!(at(&dp[i][pos.0][pos.1], pos.2 - pos.1));
            pos.2 -= pos.1;
            c = Some(b'C');
        }
        ans[i] = c.unwrap();
    }
    println!("{}", ans.into_iter().map(|c| c as char).collect::<String>());
}

// ---------- begin input macro ----------
// reference: https://qiita.com/tanakh/items/0ba42c7ca36cd29d0ac8
#[macro_export]
macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
    ($($r:tt)*) => {
        let s = {
            use std::io::Read;
            let mut s = String::new();
            std::io::stdin().read_to_string(&mut s).unwrap();
            s
        };
        let mut iter = s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
}

#[macro_export]
macro_rules! input_inner {
    ($iter:expr) => {};
    ($iter:expr, ) => {};
    ($iter:expr, $var:ident : $t:tt $($r:tt)*) => {
        let $var = read_value!($iter, $t);
        input_inner!{$iter $($r)*}
    };
}

#[macro_export]
macro_rules! read_value {
    ($iter:expr, ( $($t:tt),* )) => {
        ( $(read_value!($iter, $t)),* )
    };
    ($iter:expr, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($iter, $t)).collect::<Vec<_>>()
    };
    ($iter:expr, chars) => {
        read_value!($iter, String).chars().collect::<Vec<char>>()
    };
    ($iter:expr, bytes) => {
        read_value!($iter, String).bytes().collect::<Vec<u8>>()
    };
    ($iter:expr, usize1) => {
        read_value!($iter, usize) - 1
    };
    ($iter:expr, $t:ty) => {
        $iter.next().unwrap().parse::<$t>().expect("Parse error")
    };
}
// ---------- end input macro ----------

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 12ms
memory: 36808kb

input:

22 2
N??A??????C???????????

output:

NNBANNNNNNCNNNNNNNNNNN

result:

ok correct

Test #2:

score: 0
Accepted
time: 9ms
memory: 25864kb

input:

18 0
COUNTINGSATELLITES

output:

COUNTINGSATELLITES

result:

ok correct

Test #3:

score: 0
Accepted
time: 0ms
memory: 2744kb

input:

2 1
??

output:

-1

result:

ok correct

Test #4:

score: 0
Accepted
time: 0ms
memory: 2536kb

input:

1 0
?

output:

N

result:

ok correct

Test #5:

score: 0
Accepted
time: 0ms
memory: 2512kb

input:

1 0
N

output:

N

result:

ok correct

Test #6:

score: 0
Accepted
time: 0ms
memory: 2516kb

input:

1 0
X

output:

X

result:

ok correct

Test #7:

score: 0
Accepted
time: 0ms
memory: 2504kb

input:

1 1
?

output:

-1

result:

ok correct

Test #8:

score: 0
Accepted
time: 0ms
memory: 2624kb

input:

1 1
N

output:

-1

result:

ok correct

Test #9:

score: 0
Accepted
time: 0ms
memory: 2508kb

input:

1 1
X

output:

-1

result:

ok correct

Test #10:

score: 0
Accepted
time: 0ms
memory: 2888kb

input:

2 0
??

output:

NN

result:

ok correct

Test #11:

score: 0
Accepted
time: 1ms
memory: 2844kb

input:

2 0
N?

output:

NN

result:

ok correct

Test #12:

score: 0
Accepted
time: 1ms
memory: 2868kb

input:

2 0
?C

output:

NC

result:

ok correct

Test #13:

score: 0
Accepted
time: 1ms
memory: 2760kb

input:

2 1
N?

output:

-1

result:

ok correct

Test #14:

score: 0
Accepted
time: 0ms
memory: 2892kb

input:

2 1
?C

output:

-1

result:

ok correct

Test #15:

score: 0
Accepted
time: 0ms
memory: 3516kb

input:

3 1
???

output:

NAC

result:

ok correct

Test #16:

score: 0
Accepted
time: 1ms
memory: 3396kb

input:

3 1
N??

output:

NAC

result:

ok correct

Test #17:

score: 0
Accepted
time: 1ms
memory: 3476kb

input:

3 1
?A?

output:

NAC

result:

ok correct

Test #18:

score: 0
Accepted
time: 1ms
memory: 3464kb

input:

3 1
??C

output:

NAC

result:

ok correct

Test #19:

score: 0
Accepted
time: 1ms
memory: 3472kb

input:

3 1
NA?

output:

NAC

result:

ok correct

Test #20:

score: 0
Accepted
time: 1ms
memory: 3528kb

input:

3 1
N?C

output:

NAC

result:

ok correct

Test #21:

score: 0
Accepted
time: 1ms
memory: 3368kb

input:

3 1
?AC

output:

NAC

result:

ok correct

Test #22:

score: 0
Accepted
time: 0ms
memory: 3940kb

input:

4 1
????

output:

NACN

result:

ok correct

Test #23:

score: 0
Accepted
time: 1ms
memory: 4012kb

input:

4 1
X???

output:

XNAC

result:

ok correct

Test #24:

score: 0
Accepted
time: 0ms
memory: 4216kb

input:

4 1
???Z

output:

NACZ

result:

ok correct

Test #25:

score: 0
Accepted
time: 1ms
memory: 3800kb

input:

4 1
?AA?

output:

-1

result:

ok correct

Test #26:

score: 0
Accepted
time: 1ms
memory: 4096kb

input:

4 1
N???

output:

NACN

result:

ok correct

Test #27:

score: 0
Accepted
time: 0ms
memory: 3992kb

input:

4 1
?N??

output:

BNAC

result:

ok correct

Test #28:

score: 0
Accepted
time: 1ms
memory: 3944kb

input:

4 1
??N?

output:

NANC

result:

ok correct

Test #29:

score: 0
Accepted
time: 0ms
memory: 3956kb

input:

4 1
???N

output:

NACN

result:

ok correct

Test #30:

score: 0
Accepted
time: 1ms
memory: 3992kb

input:

4 1
A???

output:

ANAC

result:

ok correct

Test #31:

score: 0
Accepted
time: 1ms
memory: 4140kb

input:

4 1
?A??

output:

NACN

result:

ok correct

Test #32:

score: 0
Accepted
time: 0ms
memory: 3972kb

input:

4 1
??A?

output:

NBAC

result:

ok correct

Test #33:

score: 0
Accepted
time: 1ms
memory: 4212kb

input:

4 1
???A

output:

NACA

result:

ok correct

Test #34:

score: 0
Accepted
time: 1ms
memory: 3944kb

input:

4 1
C???

output:

CNAC

result:

ok correct

Test #35:

score: 0
Accepted
time: 0ms
memory: 3992kb

input:

4 1
?C??

output:

NCAC

result:

ok correct

Test #36:

score: 0
Accepted
time: 1ms
memory: 4092kb

input:

4 1
??C?

output:

NACN

result:

ok correct

Test #37:

score: 0
Accepted
time: 1ms
memory: 3940kb

input:

4 1
???C

output:

NANC

result:

ok correct

Test #38:

score: 0
Accepted
time: 2ms
memory: 4692kb

input:

5 4
?????

output:

NNAAC

result:

ok correct

Test #39:

score: 0
Accepted
time: 2ms
memory: 5348kb

input:

6 14
??????

output:

-1

result:

ok correct

Test #40:

score: 0
Accepted
time: 0ms
memory: 6380kb

input:

7 14
???????

output:

-1

result:

ok correct

Test #41:

score: 0
Accepted
time: 4ms
memory: 7576kb

input:

8 43
????????

output:

-1

result:

ok correct

Test #42:

score: 0
Accepted
time: 0ms
memory: 8916kb

input:

9 55
?????????

output:

-1

result:

ok correct

Test #43:

score: 0
Accepted
time: 3ms
memory: 10028kb

input:

10 112
??????????

output:

-1

result:

ok correct

Test #44:

score: 0
Accepted
time: 3ms
memory: 11876kb

input:

11 110
???????????

output:

-1

result:

ok correct

Test #45:

score: 0
Accepted
time: 4ms
memory: 13660kb

input:

12 4
????????????

output:

NNNNACNNNNNN

result:

ok correct

Test #46:

score: 0
Accepted
time: 4ms
memory: 15108kb

input:

13 193
?????????????

output:

-1

result:

ok correct

Test #47:

score: 0
Accepted
time: 8ms
memory: 17180kb

input:

14 91
??????????????

output:

NNNNANAAACACCC

result:

ok correct

Test #48:

score: 0
Accepted
time: 9ms
memory: 19188kb

input:

15 15
???????????????

output:

NNNNNNNANACNNNN

result:

ok correct

Test #49:

score: 0
Accepted
time: 7ms
memory: 21088kb

input:

16 261
????????????????

output:

-1

result:

ok correct

Test #50:

score: 0
Accepted
time: 6ms
memory: 23348kb

input:

17 514
?????????????????

output:

-1

result:

ok correct

Test #51:

score: 0
Accepted
time: 7ms
memory: 25644kb

input:

18 678
??????????????????

output:

-1

result:

ok correct

Test #52:

score: 0
Accepted
time: 8ms
memory: 28584kb

input:

19 40
???????????????????

output:

NNNNNNNNNNNNNAANACN

result:

ok correct

Test #53:

score: 0
Accepted
time: 7ms
memory: 31148kb

input:

20 1019
????????????????????

output:

-1

result:

ok correct

Test #54:

score: 0
Accepted
time: 18ms
memory: 33636kb

input:

21 1218
?????????????????????

output:

-1

result:

ok correct

Test #55:

score: 0
Accepted
time: 12ms
memory: 36484kb

input:

22 1348
??????????????????????

output:

-1

result:

ok correct

Test #56:

score: 0
Accepted
time: 15ms
memory: 39452kb

input:

23 476
???????????????????????

output:

-1

result:

ok correct

Test #57:

score: 0
Accepted
time: 16ms
memory: 42720kb

input:

24 1445
????????????????????????

output:

-1

result:

ok correct

Test #58:

score: 0
Accepted
time: 18ms
memory: 46084kb

input:

25 1331
?????????????????????????

output:

-1

result:

ok correct

Test #59:

score: 0
Accepted
time: 19ms
memory: 49720kb

input:

26 459
??????????????????????????

output:

NNNNNNNNNNNNAAAAAAACCNACCC

result:

ok correct

Test #60:

score: 0
Accepted
time: 25ms
memory: 52988kb

input:

27 398
???????????????????????????

output:

NNNNNNNNNNNNNNNNAANAACACCCC

result:

ok correct

Test #61:

score: 0
Accepted
time: 18ms
memory: 56580kb

input:

28 274
????????????????????????????

output:

NNNNNNNNNNNNNNNNNNNAANAACACC

result:

ok correct

Test #62:

score: 0
Accepted
time: 23ms
memory: 60364kb

input:

29 1624
?????????????????????????????

output:

-1

result:

ok correct

Test #63:

score: 0
Accepted
time: 23ms
memory: 64192kb

input:

30 2079
??????????????????????????????

output:

-1

result:

ok correct

Test #64:

score: 0
Accepted
time: 33ms
memory: 68152kb

input:

31 2067
???????????????????????????????

output:

-1

result:

ok correct

Test #65:

score: 0
Accepted
time: 29ms
memory: 72136kb

input:

32 1267
????????????????????????????????

output:

-1

result:

ok correct

Test #66:

score: 0
Accepted
time: 32ms
memory: 76852kb

input:

33 928
?????????????????????????????????

output:

NNNNNNNNNNNNNNNNANAAAAAACACCCCCCN

result:

ok correct

Test #67:

score: 0
Accepted
time: 30ms
memory: 81096kb

input:

34 298
??????????????????????????????????

output:

NNNNNNNNNNNNNNNNNNNNNNNNANAAAAACCN

result:

ok correct

Test #68:

score: 0
Accepted
time: 36ms
memory: 85432kb

input:

35 2361
???????????????????????????????????

output:

-1

result:

ok correct

Test #69:

score: 0
Accepted
time: 36ms
memory: 90336kb

input:

36 489
????????????????????????????????????

output:

NNNNNNNNNNNNNNNNNNNNNNNNNAANAACNACCC

result:

ok correct

Test #70:

score: 0
Accepted
time: 33ms
memory: 95044kb

input:

37 294
?????????????????????????????????????

output:

NNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAANAACC

result:

ok correct

Test #71:

score: 0
Accepted
time: 36ms
memory: 99968kb

input:

38 1558
??????????????????????????????????????

output:

NNNNNNNNNNNNNNNNNNNAAAAAAAAAAACCACCCCC

result:

ok correct

Test #72:

score: 0
Accepted
time: 41ms
memory: 104960kb

input:

39 1319
???????????????????????????????????????

output:

NNNNNNNNNNNNNNNNNNNNNANAAAAACAANACCCCCC

result:

ok correct

Test #73:

score: 0
Accepted
time: 40ms
memory: 110068kb

input:

40 993
????????????????????????????????????????

output:

NNNNNNNNNNNNNNNNNNNNNNNNNAAAAANAACNACCCC

result:

ok correct

Test #74:

score: 0
Accepted
time: 32ms
memory: 110076kb

input:

40 498
ACNANACNNACNACNNNCNCNNNANNNACNCCACAA?ANA

output:

-1

result:

ok correct

Test #75:

score: 0
Accepted
time: 21ms
memory: 110024kb

input:

40 855
NAAANAACNNNCNAANCNANCNANACANCCAANCACNCAC

output:

-1

result:

ok correct

Test #76:

score: 0
Accepted
time: 21ms
memory: 110040kb

input:

40 1007
?CNACNNAANACANACNACCC?CAANNCCCCANNANCACN

output:

-1

result:

ok correct

Test #77:

score: 0
Accepted
time: 20ms
memory: 109988kb

input:

40 1778
NACANANN?CCANNCCAACNNCCNCCCNCCNACCNC?NNN

output:

-1

result:

ok correct

Test #78:

score: 0
Accepted
time: 24ms
memory: 109812kb

input:

40 2186
ACCCACAN?NNA?AACCNNNN?ANACCANCNCNNCA?NCN

output:

-1

result:

ok correct

Test #79:

score: 0
Accepted
time: 22ms
memory: 109876kb

input:

40 332
ACAC?NCCCANAA?ACCNNC?NAC?CAC?CNCNNACNNNN

output:

-1

result:

ok correct

Test #80:

score: 0
Accepted
time: 16ms
memory: 109936kb

input:

40 712
ANCNANAAC?CACAACA?CNACCCANAACCA?CNNAANCN

output:

-1

result:

ok correct

Test #81:

score: 0
Accepted
time: 15ms
memory: 109980kb

input:

40 1127
C?CAAAANNCANANAC?NCANACANAACAACANNCCNCAC

output:

-1

result:

ok correct

Test #82:

score: 0
Accepted
time: 15ms
memory: 110076kb

input:

40 1835
CANNCAANNNAANANNCACANAC?CCCCAACA?NNNCAC?

output:

-1

result:

ok correct

Test #83:

score: 0
Accepted
time: 20ms
memory: 109844kb

input:

40 2009
CANAAAN?ANAACNCCNCCNCAAANCANCCAN?CCNCAAN

output:

-1

result:

ok correct

Test #84:

score: 0
Accepted
time: 23ms
memory: 109984kb

input:

40 54
CNAC?ACAAC?ACC?ANC?C?NNCAANCCAC?NCN?CACA

output:

-1

result:

ok correct

Test #85:

score: 0
Accepted
time: 29ms
memory: 109848kb

input:

40 955
?A?ANA?NN?C?ANC??CNNACAAC?N?AAN?AN??ANNA

output:

-1

result:

ok correct

Test #86:

score: 0
Accepted
time: 35ms
memory: 109900kb

input:

40 1451
??CCCA?N?ACCN?C???NNN??C?ANAN??NCNA??NAN

output:

-1

result:

ok correct

Test #87:

score: 0
Accepted
time: 30ms
memory: 109860kb

input:

40 1526
CN??AC?CCCCNACCNCNCCNC?CAAN?C?CA??ANCN?A

output:

-1

result:

ok correct

Test #88:

score: 0
Accepted
time: 16ms
memory: 109944kb

input:

40 2453
C?NC?CCAAN?ACCCNCC??ACAANCANCNCNNAACC?NN

output:

-1

result:

ok correct

Test #89:

score: 0
Accepted
time: 27ms
memory: 110136kb

input:

40 166
?NC??AACAN??NCA?CCAA?A??CNNN?ACNN?AN?ANC

output:

BNCACAACANNNNCANCCAANANNCNNNBACNNNANNANC

result:

ok correct

Test #90:

score: 0
Accepted
time: 35ms
memory: 110064kb

input:

40 887
?NA?AN?N?A?ANN??N?ANCAN?N????AC?NN?NA???

output:

NNANANNNNANANNNANNANCANNNNAAAACCNNCNACCC

result:

ok correct

Test #91:

score: 0
Accepted
time: 31ms
memory: 109824kb

input:

40 1310
CCN?NNANC??CANN??NC?N??NA?NNNNCN?N?CCCCC

output:

-1

result:

ok correct

Test #92:

score: 0
Accepted
time: 23ms
memory: 110032kb

input:

40 1568
ANCN?N?NACC??NNN?AAC?AANA?CA?NC?CNNAN??N

output:

-1

result:

ok correct

Test #93:

score: 0
Accepted
time: 28ms
memory: 110044kb

input:

40 2035
CA?N?ACCNN??CANA?NC?NACNC??CC???NCA?N?AC

output:

-1

result:

ok correct

Test #94:

score: 0
Accepted
time: 27ms
memory: 110060kb

input:

40 126
AC?CACCCN???C?NCCN?NN??CN?CNCN?C?N?C?A?C

output:

ACNCACCCNNNNCNNCCNNNNNACNNCNCNNCNNNCNAAC

result:

ok correct

Test #95:

score: 0
Accepted
time: 40ms
memory: 110144kb

input:

40 962
CCC???A??????AN?N???C?NN??CANA?CNA??N???

output:

CCCNNNANNNNANANNNAAACCNNAACANAACNACCNCCC

result:

ok correct

Test #96:

score: 0
Accepted
time: 27ms
memory: 109940kb

input:

40 1043
?A??NANA?CN?N?AN?ANN?CNAANCC??AAANNN????

output:

-1

result:

ok correct

Test #97:

score: 0
Accepted
time: 34ms
memory: 110084kb

input:

40 1638
N?ANA?NA???A??N?CNNAA???NC????CNN??AC??N

output:

-1

result:

ok correct

Test #98:

score: 0
Accepted
time: 35ms
memory: 110096kb

input:

40 2240
NNC??NCA???N?N?NNC??CNNNAN??C?AN??AC?C??

output:

-1

result:

ok correct

Test #99:

score: 0
Accepted
time: 27ms
memory: 109932kb

input:

40 55
N?NCNC????C?A??A?A?NN??ACC??C??NC???ACN?

output:

-1

result:

ok correct

Test #100:

score: 0
Accepted
time: 36ms
memory: 110140kb

input:

40 639
C???NN??C?N?N????N?CA?NCAN????AN????NA??

output:

CNNNNNNNCNNNNNNNNNNCANNCANNANAANCCACNACC

result:

ok correct

Test #101:

score: 0
Accepted
time: 27ms
memory: 109944kb

input:

40 1438
?C?A?NA?AN???CA???NAAAN??A?NNANNCAA?????

output:

-1

result:

ok correct

Test #102:

score: 0
Accepted
time: 28ms
memory: 110000kb

input:

40 1660
???C?A???????NN??AANNAC???A?CN??ACN?AC?C

output:

-1

result:

ok correct

Test #103:

score: 0
Accepted
time: 39ms
memory: 109928kb

input:

40 2016
??AA??N?N??A?C?C????????C????C?C?CN??N?A

output:

-1

result:

ok correct

Test #104:

score: 0
Accepted
time: 35ms
memory: 110152kb

input:

40 242
?C???A???AA??A??C?CN???C???A?ANA?NN??AA?

output:

NCNNNANNNAANNANNCNCNNNNCNNNANANANNNANAAC

result:

ok correct

Test #105:

score: 0
Accepted
time: 32ms
memory: 110068kb

input:

40 711
??A?AA?C??C???CCNA?????C????A?????A??C??

output:

NNANAANCNNCNNNCCNANNNNNCNNNNAAAAAAACACCC

result:

ok correct

Test #106:

score: 0
Accepted
time: 27ms
memory: 110024kb

input:

40 1094
??AACN??N?A?????C????AA??CC???CC?N?A????

output:

NNAACNNNNNANNNNNCNNNNAAAACCAAACCCNCACCAC

result:

ok correct

Test #107:

score: 0
Accepted
time: 23ms
memory: 109868kb

input:

40 1878
?A??AACCA????N???A???C?C?C??C?NANC?N?NAC

output:

-1

result:

ok correct

Test #108:

score: 0
Accepted
time: 41ms
memory: 109900kb

input:

40 2082
AC??ACANC?CN?C?N???C?N???N??C?CC?????C?C

output:

-1

result:

ok correct

Test #109:

score: 0
Accepted
time: 35ms
memory: 109924kb

input:

40 268
N?N??NNNCNC??CAC????A?C?????N???AN??NC??

output:

NNNNNNNNCNCNNCACNNNNANCNNNNNNNNNANACNCCN

result:

ok correct

Test #110:

score: 0
Accepted
time: 42ms
memory: 110068kb

input:

40 960
?????????N???NA?????????C??AC???AN?A???A

output:

NNNNNNNNNNNNNNANNNNNNAANCANACAAAANCACCCA

result:

ok correct

Test #111:

score: 0
Accepted
time: 35ms
memory: 110184kb

input:

40 1342
???C?????C?????NA?N??N?C?????A?N???NA???

output:

NNNCNNNNNCNNNAANAANAANACACACAACNCCCNACCC

result:

ok correct

Test #112:

score: 0
Accepted
time: 43ms
memory: 109876kb

input:

40 1739
?A?A???A???N?A??N???C???NCC??C??ANN???A?

output:

-1

result:

ok correct

Test #113:

score: 0
Accepted
time: 40ms
memory: 109940kb

input:

40 2484
??????N????N?????N?C??N????????????A???N

output:

-1

result:

ok correct

Test #114:

score: 0
Accepted
time: 41ms
memory: 110016kb

input:

40 116
?CN????????A??A???C????????????????C????

output:

NCNNNNNNNNNANNANNNCNNNNNNNNNNACNNNNCNNNN

result:

ok correct

Test #115:

score: 0
Accepted
time: 35ms
memory: 109988kb

input:

40 538
NC???N?????????????NN??N????????CC???N??

output:

NCNNNNNNNNNNNNNNNNNNNNNNNNNANAAACCANANCC

result:

ok correct

Test #116:

score: 0
Accepted
time: 35ms
memory: 110068kb

input:

40 1128
?????AN?????CN????N?A????C???C??????????

output:

NNNNNANNNNNNCNNNNNNNANNAACNNACAAAAACCCCC

result:

ok correct

Test #117:

score: 0
Accepted
time: 39ms
memory: 110084kb

input:

40 1819
?????????C?AC?????C??A??NC?????????????C

output:

-1

result:

ok correct

Test #118:

score: 0
Accepted
time: 35ms
memory: 109980kb

input:

40 2198
??????A???N????????ANN???N?C??????C?????

output:

-1

result:

ok correct

Test #119:

score: 0
Accepted
time: 43ms
memory: 110144kb

input:

40 373
???????????C?A?????????A???A?C??????????

output:

NNNNNNNNNNNCNANNNNNNNNNANNNANCNNNNACACCN

result:

ok correct

Test #120:

score: 0
Accepted
time: 39ms
memory: 110200kb

input:

40 744
?????????????????C????????????A????C???N

output:

NNNNNNNNNNNNNNNNNCNNNNNNNNANANAAAAACCCCN

result:

ok correct

Test #121:

score: 0
Accepted
time: 40ms
memory: 109984kb

input:

40 1103
???????????????????????????N????????????

output:

NNNNNNNNNNNNNNNNNNNNNNNNANANAAAAAACCACCC

result:

ok correct

Test #122:

score: 0
Accepted
time: 46ms
memory: 110072kb

input:

40 1866
???????A??????A??A???????????????C??????

output:

NNNNNNNANNNNNNANNANNAAAAANAAACCCACCCCCCC

result:

ok correct

Test #123:

score: 0
Accepted
time: 44ms
memory: 110040kb

input:

40 2466
????????????CN?????????????????N??CA????

output:

-1

result:

ok correct

Test #124:

score: 0
Accepted
time: 48ms
memory: 110072kb

input:

40 1
?????????????????????????????????????NAC

output:

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBNAC

result:

ok correct