QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#428102#8776. Not Another Constructive!ucup-team228#AC ✓917ms1145632kbC++206.6kb2024-06-01 17:30:292024-06-01 17:30:29

Judging History

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

  • [2024-06-01 17:30:29]
  • 评测
  • 测评结果:AC
  • 用时:917ms
  • 内存:1145632kb
  • [2024-06-01 17:30:29]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

struct State {
    int cnt1 = 0;
    int cnt2 = 0;
    int cnt3 = 0;
    char last = '?';
    int prev = -1;
    bool operator<(const State& ot) const {
        return tie(cnt1, cnt2, cnt3) < tie(ot.cnt1, ot.cnt2, ot.cnt3);
    }
    bool operator==(const State& ot) const {
        return tie(cnt1, cnt2, cnt3) == tie(ot.cnt1, ot.cnt2, ot.cnt3);
    }
};

const int N = 40 + 5;
vector<State> dp[N];

char last[40 + 5][400 + 5][2500 + 5];
int mem[40 + 5][400 + 5][2500 + 5];

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
#ifdef LOCAL
    freopen("input.txt", "r", stdin);
#endif

    int n, k;
    cin >> n >> k;
    string s;
    cin >> s;
    s = "*" + s;

    for (int i = 0; i <= 40; i++) {
        for (int j = 0; j <= 400; j++) {
            for (int t = 0; t <= k; t++) {
                last[i][j][t] = '?';
                mem[i][j][t] = -1;
            }
        }
    }

    dp[0].push_back({});
    for (int i = 1; i <= n; i++) {
        int mx1 = 0, mx2 = 0, mx3 = 0;
        for (int j = 0; j < dp[i - 1].size(); j++) {
            auto state = dp[i - 1][j];
            state.prev = j;
            if (s[i] == '?') {
                {
                    State cur = state;
                    cur.last = 'N';
                    cur.cnt1++;
                    // dp[i].push_back(cur);
                    last[cur.cnt1][cur.cnt2][cur.cnt3] = cur.last;
                    mem[cur.cnt1][cur.cnt2][cur.cnt3] = cur.prev;
                    mx1 = max(mx1, cur.cnt1);
                    mx2 = max(mx2, cur.cnt2);
                    mx3 = max(mx3, cur.cnt3);
                }
                {
                    State cur = state;
                    cur.last = 'A';
                    cur.cnt2 += cur.cnt1;
                    // dp[i].push_back(cur);
                    last[cur.cnt1][cur.cnt2][cur.cnt3] = cur.last;
                    mem[cur.cnt1][cur.cnt2][cur.cnt3] = cur.prev;
                    mx1 = max(mx1, cur.cnt1);
                    mx2 = max(mx2, cur.cnt2);
                    mx3 = max(mx3, cur.cnt3);
                }
                {
                    State cur = state;
                    cur.last = 'C';
                    cur.cnt3 += cur.cnt2;
                    if (cur.cnt3 <= k) {
                        // dp[i].push_back(cur);
                        last[cur.cnt1][cur.cnt2][cur.cnt3] = cur.last;
                        mem[cur.cnt1][cur.cnt2][cur.cnt3] = cur.prev;
                        mx1 = max(mx1, cur.cnt1);
                        mx2 = max(mx2, cur.cnt2);
                        mx3 = max(mx3, cur.cnt3);
                    }
                }
                {
                    State cur = state;
                    cur.last = 'X';
                    // dp[i].push_back(cur);
                    last[cur.cnt1][cur.cnt2][cur.cnt3] = cur.last;
                    mem[cur.cnt1][cur.cnt2][cur.cnt3] = cur.prev;
                    mx1 = max(mx1, cur.cnt1);
                    mx2 = max(mx2, cur.cnt2);
                    mx3 = max(mx3, cur.cnt3);
                }
            } else {
                state.last = s[i];
                if (s[i] == 'N') {
                    state.cnt1++;
                    // dp[i].push_back(state);
                    last[state.cnt1][state.cnt2][state.cnt3] = state.last;
                    mem[state.cnt1][state.cnt2][state.cnt3] = state.prev;
                    mx1 = max(mx1, state.cnt1);
                    mx2 = max(mx2, state.cnt2);
                    mx3 = max(mx3, state.cnt3);
                } else if (s[i] == 'A') {
                    state.cnt2 += state.cnt1;
                    // dp[i].push_back(state);
                    last[state.cnt1][state.cnt2][state.cnt3] = state.last;
                    mem[state.cnt1][state.cnt2][state.cnt3] = state.prev;
                    mx1 = max(mx1, state.cnt1);
                    mx2 = max(mx2, state.cnt2);
                    mx3 = max(mx3, state.cnt3);
                } else if (s[i] == 'C') {
                    state.cnt3 += state.cnt2;
                    if (state.cnt3 <= k) {
                        // dp[i].push_back(state);
                        last[state.cnt1][state.cnt2][state.cnt3] = state.last;
                        mem[state.cnt1][state.cnt2][state.cnt3] = state.prev;
                        mx1 = max(mx1, state.cnt1);
                        mx2 = max(mx2, state.cnt2);
                        mx3 = max(mx3, state.cnt3);
                    }
                } else {
                    // dp[i].push_back(state);
                    last[state.cnt1][state.cnt2][state.cnt3] = state.last;
                    mem[state.cnt1][state.cnt2][state.cnt3] = state.prev;
                    mx1 = max(mx1, state.cnt1);
                    mx2 = max(mx2, state.cnt2);
                    mx3 = max(mx3, state.cnt3);
                }
            }
        }
        int sz = 0;
        for (int x = 0; x <= mx1; x++) {
            for (int y = 0; y <= mx2; y++) {
                for (int z = 0; z <= mx3; z++) {
                    if (mem[x][y][z] != -1) {
                        sz++;
                    }
                }
            }
        }
        dp[i].reserve(sz);
        for (int x = 0; x <= mx1; x++) {
            for (int y = 0; y <= mx2; y++) {
                for (int z = 0; z <= mx3; z++) {
                    if (mem[x][y][z] != -1) {
                        dp[i].push_back({x, y, z, last[x][y][z], mem[x][y][z]});
                    }
                    last[x][y][z] = '?';
                    mem[x][y][z] = -1;
                }
            }
        }
//        sort(dp[i].begin(), dp[i].end());
//        dp[i].erase(unique(dp[i].begin(), dp[i].end()), dp[i].end());
//        if (i == 6) {
//            for (const auto& state: dp[i]) {
//                cout << state.cnt1 << " " << state.cnt2 << " " << state.cnt3 << " " << state.last << " " << state.prev << endl;
//            }
//        }
        // cout << i << " " << dp[i].size() << endl;
    }



    int pos = -1;
    for (int j = 0; j < dp[n].size(); j++) {
        if (dp[n][j].cnt3 == k) {
            pos = j;
        }
    }
    if (pos == -1) {
        cout << "-1\n";
    } else {
        string ans = s;

        for (int i = n; i >= 1; i--) {
            ans[i] = dp[i][pos].last;
            pos = dp[i][pos].prev;
        }

        cout << ans.substr(1) << "\n";
    }

#ifdef LOCAL
    cout << "\nTime elapsed: " << double(clock()) / CLOCKS_PER_SEC << " s.\n";
#endif
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 192344kb

input:

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

output:

NNXANNNNNNCNNNNNNNNNNN

result:

ok correct

Test #2:

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

input:

18 0
COUNTINGSATELLITES

output:

COUNTINGSATELLITES

result:

ok correct

Test #3:

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

input:

2 1
??

output:

-1

result:

ok correct

Test #4:

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

input:

1 0
?

output:

N

result:

ok correct

Test #5:

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

input:

1 0
N

output:

N

result:

ok correct

Test #6:

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

input:

1 0
X

output:

X

result:

ok correct

Test #7:

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

input:

1 1
?

output:

-1

result:

ok correct

Test #8:

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

input:

1 1
N

output:

-1

result:

ok correct

Test #9:

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

input:

1 1
X

output:

-1

result:

ok correct

Test #10:

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

input:

2 0
??

output:

NN

result:

ok correct

Test #11:

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

input:

2 0
N?

output:

NN

result:

ok correct

Test #12:

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

input:

2 0
?C

output:

NC

result:

ok correct

Test #13:

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

input:

2 1
N?

output:

-1

result:

ok correct

Test #14:

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

input:

2 1
?C

output:

-1

result:

ok correct

Test #15:

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

input:

3 1
???

output:

NAC

result:

ok correct

Test #16:

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

input:

3 1
N??

output:

NAC

result:

ok correct

Test #17:

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

input:

3 1
?A?

output:

NAC

result:

ok correct

Test #18:

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

input:

3 1
??C

output:

NAC

result:

ok correct

Test #19:

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

input:

3 1
NA?

output:

NAC

result:

ok correct

Test #20:

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

input:

3 1
N?C

output:

NAC

result:

ok correct

Test #21:

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

input:

3 1
?AC

output:

NAC

result:

ok correct

Test #22:

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

input:

4 1
????

output:

NANC

result:

ok correct

Test #23:

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

input:

4 1
X???

output:

XNAC

result:

ok correct

Test #24:

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

input:

4 1
???Z

output:

NACZ

result:

ok correct

Test #25:

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

input:

4 1
?AA?

output:

-1

result:

ok correct

Test #26:

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

input:

4 1
N???

output:

NANC

result:

ok correct

Test #27:

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

input:

4 1
?N??

output:

XNAC

result:

ok correct

Test #28:

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

input:

4 1
??N?

output:

NANC

result:

ok correct

Test #29:

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

input:

4 1
???N

output:

NACN

result:

ok correct

Test #30:

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

input:

4 1
A???

output:

ANAC

result:

ok correct

Test #31:

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

input:

4 1
?A??

output:

NANC

result:

ok correct

Test #32:

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

input:

4 1
??A?

output:

NXAC

result:

ok correct

Test #33:

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

input:

4 1
???A

output:

NACA

result:

ok correct

Test #34:

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

input:

4 1
C???

output:

CNAC

result:

ok correct

Test #35:

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

input:

4 1
?C??

output:

NCAC

result:

ok correct

Test #36:

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

input:

4 1
??C?

output:

NACN

result:

ok correct

Test #37:

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

input:

4 1
???C

output:

NANC

result:

ok correct

Test #38:

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

input:

5 4
?????

output:

NNAAC

result:

ok correct

Test #39:

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

input:

6 14
??????

output:

-1

result:

ok correct

Test #40:

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

input:

7 14
???????

output:

-1

result:

ok correct

Test #41:

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

input:

8 43
????????

output:

-1

result:

ok correct

Test #42:

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

input:

9 55
?????????

output:

-1

result:

ok correct

Test #43:

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

input:

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

output:

-1

result:

ok correct

Test #44:

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

input:

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

output:

-1

result:

ok correct

Test #45:

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

input:

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

output:

NNNNANNNNNNC

result:

ok correct

Test #46:

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

input:

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

output:

-1

result:

ok correct

Test #47:

score: 0
Accepted
time: 11ms
memory: 197604kb

input:

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

output:

NNNNANAAACACCC

result:

ok correct

Test #48:

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

input:

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

output:

NNNANNNNNNNNNAC

result:

ok correct

Test #49:

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

input:

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

output:

-1

result:

ok correct

Test #50:

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

input:

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

output:

-1

result:

ok correct

Test #51:

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

input:

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

output:

-1

result:

ok correct

Test #52:

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

input:

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

output:

NNNNNNNNNNANNNNNAAC

result:

ok correct

Test #53:

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

input:

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

output:

-1

result:

ok correct

Test #54:

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

input:

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

output:

-1

result:

ok correct

Test #55:

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

input:

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

output:

-1

result:

ok correct

Test #56:

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

input:

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

output:

-1

result:

ok correct

Test #57:

score: 0
Accepted
time: 63ms
memory: 234460kb

input:

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

output:

-1

result:

ok correct

Test #58:

score: 0
Accepted
time: 53ms
memory: 246576kb

input:

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

output:

-1

result:

ok correct

Test #59:

score: 0
Accepted
time: 58ms
memory: 259760kb

input:

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

output:

NNNNNNANNNNNNNAAAAACAACCCC

result:

ok correct

Test #60:

score: 0
Accepted
time: 67ms
memory: 272316kb

input:

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

output:

NNNNNNNNNNNNNNNANNAAACACCCC

result:

ok correct

Test #61:

score: 0
Accepted
time: 72ms
memory: 275488kb

input:

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

output:

NNNNNNNNNNNNNNNNNNANNAAACACC

result:

ok correct

Test #62:

score: 0
Accepted
time: 144ms
memory: 318168kb

input:

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

output:

-1

result:

ok correct

Test #63:

score: 0
Accepted
time: 143ms
memory: 348424kb

input:

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

output:

-1

result:

ok correct

Test #64:

score: 0
Accepted
time: 193ms
memory: 385016kb

input:

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

output:

-1

result:

ok correct

Test #65:

score: 0
Accepted
time: 242ms
memory: 429648kb

input:

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

output:

-1

result:

ok correct

Test #66:

score: 0
Accepted
time: 287ms
memory: 481652kb

input:

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

output:

NNNNNNNNNNNNNNNNANAAAAAACANCCCCCC

result:

ok correct

Test #67:

score: 0
Accepted
time: 197ms
memory: 407156kb

input:

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

output:

NNNNNNNNNNNNNNNNNNNANNNNNNNAAAAACC

result:

ok correct

Test #68:

score: 0
Accepted
time: 475ms
memory: 626692kb

input:

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

output:

-1

result:

ok correct

Test #69:

score: 0
Accepted
time: 328ms
memory: 574456kb

input:

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

output:

NNNNNNNNNNNNNNNNNNNNNANNNNNNAAACACCC

result:

ok correct

Test #70:

score: 0
Accepted
time: 227ms
memory: 508356kb

input:

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

output:

NNNNNNNNNNNNNNNNNNNNNNNNNNNANNNAAAACC

result:

ok correct

Test #71:

score: 0
Accepted
time: 775ms
memory: 958960kb

input:

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

output:

NNNNNNNNNNNNNNNNNNNAAAAAAAAAACAACCCCCC

result:

ok correct

Test #72:

score: 0
Accepted
time: 886ms
memory: 1084940kb

input:

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

output:

NNNNNNNNNNNNNNNNNNNNNANAAAAACAANACCCCCC

result:

ok correct

Test #73:

score: 0
Accepted
time: 875ms
memory: 1145632kb

input:

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

output:

NNNNNNNNNNNNNNNANNNNNNNNNNNNAAAAAACACCCC

result:

ok correct

Test #74:

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

input:

40 498
ACNANACNNACNACNNNCNCNNNANNNACNCCACAA?ANA

output:

-1

result:

ok correct

Test #75:

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

input:

40 855
NAAANAACNNNCNAANCNANCNANACANCCAANCACNCAC

output:

-1

result:

ok correct

Test #76:

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

input:

40 1007
?CNACNNAANACANACNACCC?CAANNCCCCANNANCACN

output:

-1

result:

ok correct

Test #77:

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

input:

40 1778
NACANANN?CCANNCCAACNNCCNCCCNCCNACCNC?NNN

output:

-1

result:

ok correct

Test #78:

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

input:

40 2186
ACCCACAN?NNA?AACCNNNN?ANACCANCNCNNCA?NCN

output:

-1

result:

ok correct

Test #79:

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

input:

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

output:

-1

result:

ok correct

Test #80:

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

input:

40 712
ANCNANAAC?CACAACA?CNACCCANAACCA?CNNAANCN

output:

-1

result:

ok correct

Test #81:

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

input:

40 1127
C?CAAAANNCANANAC?NCANACANAACAACANNCCNCAC

output:

-1

result:

ok correct

Test #82:

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

input:

40 1835
CANNCAANNNAANANNCACANAC?CCCCAACA?NNNCAC?

output:

-1

result:

ok correct

Test #83:

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

input:

40 2009
CANAAAN?ANAACNCCNCCNCAAANCANCCAN?CCNCAAN

output:

-1

result:

ok correct

Test #84:

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

input:

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

output:

-1

result:

ok correct

Test #85:

score: 0
Accepted
time: 78ms
memory: 230572kb

input:

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

output:

-1

result:

ok correct

Test #86:

score: 0
Accepted
time: 75ms
memory: 239608kb

input:

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

output:

-1

result:

ok correct

Test #87:

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

input:

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

output:

-1

result:

ok correct

Test #88:

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

input:

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

output:

-1

result:

ok correct

Test #89:

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

input:

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

output:

XNCACAACANNNNCANCCAANANNCNNNXACNNNANNANC

result:

ok correct

Test #90:

score: 0
Accepted
time: 181ms
memory: 315608kb

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: 57ms
memory: 224132kb

input:

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

output:

-1

result:

ok correct

Test #92:

score: 0
Accepted
time: 84ms
memory: 222308kb

input:

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

output:

-1

result:

ok correct

Test #93:

score: 0
Accepted
time: 72ms
memory: 231268kb

input:

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

output:

-1

result:

ok correct

Test #94:

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

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: 150ms
memory: 305080kb

input:

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

output:

CCCNNNANNNNANANNNAAACCNNAACANAACNACCNCCC

result:

ok correct

Test #96:

score: 0
Accepted
time: 90ms
memory: 235720kb

input:

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

output:

-1

result:

ok correct

Test #97:

score: 0
Accepted
time: 231ms
memory: 345984kb

input:

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

output:

-1

result:

ok correct

Test #98:

score: 0
Accepted
time: 150ms
memory: 281072kb

input:

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

output:

-1

result:

ok correct

Test #99:

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

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: 233ms
memory: 403340kb

input:

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

output:

CNNNNNNNCNNNNNNNNNNCANNCANNANAANCCACNACC

result:

ok correct

Test #101:

score: 0
Accepted
time: 125ms
memory: 274100kb

input:

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

output:

-1

result:

ok correct

Test #102:

score: 0
Accepted
time: 253ms
memory: 339104kb

input:

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

output:

-1

result:

ok correct

Test #103:

score: 0
Accepted
time: 345ms
memory: 492236kb

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: 95ms
memory: 295064kb

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: 209ms
memory: 423580kb

input:

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

output:

NNANAANCNNCNNNCCNANNNNNCNNNNAAAAAAACACCC

result:

ok correct

Test #106:

score: 0
Accepted
time: 289ms
memory: 429848kb

input:

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

output:

NNAACNNNNNANNNNNCNNNNAAAACCAAACCCNCACCAC

result:

ok correct

Test #107:

score: 0
Accepted
time: 140ms
memory: 298888kb

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: 125ms
memory: 302176kb

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: 118ms
memory: 310400kb

input:

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

output:

NNNNNNNNCNCNNCACNNNNANCNNNNNNNNNANANNCCC

result:

ok correct

Test #110:

score: 0
Accepted
time: 511ms
memory: 699652kb

input:

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

output:

NNNNNNNNNNNNNNANNNNNANNACANACAAAANCACCCA

result:

ok correct

Test #111:

score: 0
Accepted
time: 414ms
memory: 560932kb

input:

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

output:

NNNCNNNNNCNNNAANAANAANACCAAACACNCCCNACCC

result:

ok correct

Test #112:

score: 0
Accepted
time: 264ms
memory: 421940kb

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: 838ms
memory: 940452kb

input:

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

output:

-1

result:

ok correct

Test #114:

score: 0
Accepted
time: 59ms
memory: 299656kb

input:

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

output:

NCNNNNNNNNNANNANNNCNNNNNNNNNNANNNNNCNNNC

result:

ok correct

Test #115:

score: 0
Accepted
time: 359ms
memory: 545972kb

input:

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

output:

NCNNNNNNNNNNNNNNNNNNNNNNNNNANAAACCANANCC

result:

ok correct

Test #116:

score: 0
Accepted
time: 559ms
memory: 780648kb

input:

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

output:

NNNNNANNNNNNCNNNNNNNANNAACNNACAAAAACCCCC

result:

ok correct

Test #117:

score: 0
Accepted
time: 537ms
memory: 717388kb

input:

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

output:

-1

result:

ok correct

Test #118:

score: 0
Accepted
time: 654ms
memory: 765484kb

input:

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

output:

-1

result:

ok correct

Test #119:

score: 0
Accepted
time: 285ms
memory: 549424kb

input:

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

output:

NNNNNNNNNNNCNANNNNNNNNNANNNANCNNNNACANCC

result:

ok correct

Test #120:

score: 0
Accepted
time: 584ms
memory: 850924kb

input:

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

output:

NNNNNNNNNNNNNNNNNCNNNNNNNANNNAAAAAACCCCN

result:

ok correct

Test #121:

score: 0
Accepted
time: 876ms
memory: 1112300kb

input:

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

output:

NNNNNNNNNNNNNNNNNNNNNNNNANANAAAAACAACCCC

result:

ok correct

Test #122:

score: 0
Accepted
time: 917ms
memory: 1045948kb

input:

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

output:

NNNNNNNANNNNNNANAANNNNAAAAACAAACCCCCCCCC

result:

ok correct

Test #123:

score: 0
Accepted
time: 767ms
memory: 919564kb

input:

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

output:

-1

result:

ok correct

Test #124:

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

input:

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

output:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNAC

result:

ok correct