CSES - HIIT Open 2017 - Results
Submission details
Task:Dynamic duo
Sender:kyy-kol
Submission time:2017-05-27 12:15:34 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.06 sdetails
#3ACCEPTED0.03 sdetails
#4ACCEPTED0.07 sdetails
#5ACCEPTED0.03 sdetails
#6ACCEPTED0.06 sdetails
#7ACCEPTED0.05 sdetails
#8ACCEPTED0.04 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.06 sdetails
#11ACCEPTED0.04 sdetails
#12ACCEPTED0.05 sdetails
#13ACCEPTED0.05 sdetails
#14ACCEPTED0.04 sdetails
#15ACCEPTED0.05 sdetails
#16ACCEPTED0.04 sdetails
#17ACCEPTED0.05 sdetails
#18ACCEPTED0.04 sdetails
#19ACCEPTED0.05 sdetails
#20ACCEPTED0.05 sdetails
#21ACCEPTED0.07 sdetails
#22ACCEPTED0.04 sdetails
#23ACCEPTED0.06 sdetails
#24ACCEPTED0.06 sdetails
#25ACCEPTED0.06 sdetails
#26ACCEPTED0.05 sdetails
#27ACCEPTED0.04 sdetails
#28ACCEPTED0.05 sdetails
#29ACCEPTED0.04 sdetails
#30ACCEPTED0.05 sdetails
#31ACCEPTED0.05 sdetails
#32ACCEPTED0.03 sdetails
#33ACCEPTED0.05 sdetails
#34ACCEPTED0.04 sdetails
#35ACCEPTED0.05 sdetails
#36ACCEPTED0.04 sdetails
#37ACCEPTED0.03 sdetails
#38ACCEPTED0.04 sdetails
#39ACCEPTED0.06 sdetails
#40ACCEPTED0.05 sdetails
#41ACCEPTED0.05 sdetails
#42ACCEPTED0.04 sdetails
#43ACCEPTED0.05 sdetails
#44ACCEPTED0.12 sdetails
#45ACCEPTED0.11 sdetails
#46ACCEPTED0.11 sdetails
#47ACCEPTED0.17 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:23:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < s.size()/2; ++i) {
                                  ^

Code

#include <iostream>
#include <map>

using namespace std;
int cc[26];
multimap<int, int> ca;
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    string s;
    cin >> s;
    if (s.size()%2) {
        cout << -1 << endl;
        return 0;
    }
    string a, b;
    for (char c : s) {
        cc[c-'A']++;
    }
    for (int ci = 0; ci < 26; ++ci) {
        if (cc[ci]) ca.insert({cc[ci], ci});
    }
    for (int i = 0; i < s.size()/2; ++i) {
        if (ca.size()<2) {
            cout << -1 << endl;
            return 0;
        }
        int q = (--ca.end())->second; ca.erase(--ca.end());
        int w = (--ca.end())->second; ca.erase(--ca.end());
        a.push_back(q+'A');
        b.push_back(w+'A');
        cc[w]--; cc[q]--;
        if (cc[w]) ca.insert({cc[w], w});
        if (cc[q]) ca.insert({cc[q], q});
    }
    cout << a << endl;
    cout << b << endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
BA

correct output
A
B

user output
B
A

Test 2

Verdict: ACCEPTED

input
AA

correct output
-1

user output
-1

Test 3

Verdict: ACCEPTED

input
CAAB

correct output
AA
BC

user output
AA
CB

Test 4

Verdict: ACCEPTED

input
BABA

correct output
AA
BB

user output
BB
AA

Test 5

Verdict: ACCEPTED

input
BBCCAA

correct output
AAB
BCC

user output
CAA
BCB

Test 6

Verdict: ACCEPTED

input
AAAB

correct output
-1

user output
-1

Test 7

Verdict: ACCEPTED

input
BAABAC

correct output
AAA
BBC

user output
AAA
BBC

Test 8

Verdict: ACCEPTED

input
ABABAB

correct output
AAA
BBB

user output
BBB
AAA

Test 9

Verdict: ACCEPTED

input
BCBACAAB

correct output
AAAB
BBCC

user output
BBCC
AABA

Test 10

Verdict: ACCEPTED

input
AAAA

correct output
-1

user output
-1

Test 11

Verdict: ACCEPTED

input
AABCAA

correct output
-1

user output
-1

Test 12

Verdict: ACCEPTED

input
AAABBA

correct output
-1

user output
-1

Test 13

Verdict: ACCEPTED

input
BBAACCAA

correct output
AAAA
BBCC

user output
AAAA
CBBC

Test 14

Verdict: ACCEPTED

input
ABAACBBA

correct output
AAAA
BBBC

user output
AAAA
BBBC

Test 15

Verdict: ACCEPTED

input
BBCCABAAAC

correct output
AAAAB
BBCCC

user output
AAACC
CBBAB

Test 16

Verdict: ACCEPTED

input
BAAABABB

correct output
AAAA
BBBB

user output
BBBB
AAAA

Test 17

Verdict: ACCEPTED

input
CBBACABBAA

correct output
AAAAB
BBBCC

user output
BBBCC
AAABA

Test 18

Verdict: ACCEPTED

input
BCACBAACBABC

correct output
AAAABB
BBCCCC

user output
CAAACC
BCBBAB

Test 19

Verdict: ACCEPTED

input
AAAABA

correct output
-1

user output
-1

Test 20

Verdict: ACCEPTED

input
BAAAACBA

correct output
-1

user output
-1

Test 21

Verdict: ACCEPTED

input
BBAAAABA

correct output
-1

user output
-1

Test 22

Verdict: ACCEPTED

input
BAACCBABAA

correct output
AAAAA
BBBCC

user output
AAAAA
BBCCB

Test 23

Verdict: ACCEPTED

input
BABACAABAB

correct output
AAAAA
BBBBC

user output
AAAAA
BBBBC

Test 24

Verdict: ACCEPTED

input
CCAABBABCBAA

correct output
AAAAAB
BBBCCC

user output
AAAABB
BBCCAC

Test 25

Verdict: ACCEPTED

input
AABBAAABBB

correct output
AAAAA
BBBBB

user output
BBBBB
AAAAA

Test 26

Verdict: ACCEPTED

input
BABAACACBBAB

correct output
AAAAAB
BBBBCC

user output
BBBBCC
AAAABA

Test 27

Verdict: ACCEPTED

input
AABBBCCABCABAC

correct output
AAAAABB
BBBCCCC

user output
BBCCCBB
AABAACA

Test 28

Verdict: ACCEPTED

input
AAAAAA

correct output
-1

user output
-1

Test 29

Verdict: ACCEPTED

input
AABACAAA

correct output
-1

user output
-1

Test 30

Verdict: ACCEPTED

input
BAAABAAA

correct output
-1

user output
-1

Test 31

Verdict: ACCEPTED

input
ABAABAACAC

correct output
-1

user output
-1

Test 32

Verdict: ACCEPTED

input
AAAABACBBA

correct output
-1

user output
-1

Test 33

Verdict: ACCEPTED

input
BABCCBAACAAA

correct output
AAAAAA
BBBCCC

user output
AAAAAA
CBBCCB

Test 34

Verdict: ACCEPTED

input
BBBAAAABAA

correct output
-1

user output
-1

Test 35

Verdict: ACCEPTED

input
ABBABBAAACCA

correct output
AAAAAA
BBBBCC

user output
AAAAAA
BBBCCB

Test 36

Verdict: ACCEPTED

input
BCACABBACACABA

correct output
AAAAAAB
BBBCCCC

user output
AAAAABB
CBBCCAC

Test 37

Verdict: ACCEPTED

input
BAABCBAAAABB

correct output
AAAAAA
BBBBBC

user output
AAAAAA
BBBBBC

Test 38

Verdict: ACCEPTED

input
ABBAACCABBCABA

correct output
AAAAAAB
BBBBCCC

user output
AAAAABB
BBBCCAC

Test 39

Verdict: ACCEPTED

input
ABCACCBABBAACABC

correct output
AAAAAABB
BBBCCCCC

user output
AAACCCAA
CBBABBCB

Test 40

Verdict: ACCEPTED

input
ABBBAAABBABA

correct output
AAAAAA
BBBBBB

user output
BBBBBB
AAAAAA

Test 41

Verdict: ACCEPTED

input
AAACAABBCABBBB

correct output
AAAAAAB
BBBBBCC

user output
BBBBBCC
AAAAABA

Test 42

Verdict: ACCEPTED

input
BCBBBCAABABCCAAA

correct output
AAAAAABB
BBBBCCCC

user output
BBBCCCBB
AAABAACA

Test 43

Verdict: ACCEPTED

input
BBCBAABACCCBAACACB

correct output
AAAAAABBB
BBBCCCCCC

user output
CAAACCCAA
BCBBABBCB

Test 44

Verdict: ACCEPTED

input
BBABBABABAABAAABBAAABBBBBBAABB...

correct output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

user output
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB...

Test 45

Verdict: ACCEPTED

input
AAAABABABBBBABAABBBABBBBBABBAB...

correct output
-1

user output
-1

Test 46

Verdict: ACCEPTED

input
ABBBAABAABAAABBAAAAABBBABAAAAB...

correct output
-1

user output
-1

Test 47

Verdict: ACCEPTED

input
XOQPQRNTLADFTEQSZYBMIRXWHSQDCM...

correct output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

user output
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...