Task: | Sukat |
Sender: | EmuBird |
Submission time: | 2024-01-20 15:40:29 +0200 |
Language: | Java |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.16 s | 1, 2, 3 | details |
#2 | ACCEPTED | 0.07 s | 1, 2, 3 | details |
#3 | ACCEPTED | 0.16 s | 1, 2, 3 | details |
#4 | WRONG ANSWER | 0.16 s | 1, 2, 3 | details |
#5 | ACCEPTED | 0.16 s | 1, 2, 3 | details |
#6 | ACCEPTED | 0.16 s | 1, 2, 3 | details |
#7 | ACCEPTED | 0.16 s | 1, 2, 3 | details |
#8 | ACCEPTED | 0.20 s | 2, 3 | details |
#9 | ACCEPTED | 0.07 s | 2, 3 | details |
#10 | WRONG ANSWER | 0.20 s | 2, 3 | details |
#11 | WRONG ANSWER | 0.19 s | 2, 3 | details |
#12 | ACCEPTED | 0.19 s | 2, 3 | details |
#13 | ACCEPTED | 0.19 s | 2, 3 | details |
#14 | WRONG ANSWER | 0.17 s | 2, 3 | details |
#15 | TIME LIMIT EXCEEDED | -- | 3 | details |
#16 | ACCEPTED | 0.19 s | 3 | details |
#17 | TIME LIMIT EXCEEDED | -- | 3 | details |
#18 | WRONG ANSWER | 1.00 s | 3 | details |
#19 | TIME LIMIT EXCEEDED | -- | 3 | details |
#20 | TIME LIMIT EXCEEDED | -- | 3 | details |
#21 | WRONG ANSWER | 0.19 s | 3 | details |
Code
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; public class Main { public static class Pair { public char a; public char b; public Pair(char a, char b) { this.a = a; this.b = b; } } public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String input = reader.readLine(); int sum = 0; HashMap<Character, Integer> map = new HashMap<Character, Integer>(); for (char c : input.toCharArray()) { int count = map.getOrDefault(c, 0) + 1; sum += count; map.put(c, count); } ArrayList<Pair> pairs = new ArrayList<Pair>(); for (char c : map.keySet().toArray(new Character[0])) { if (!map.containsKey(c)) continue; int selfCount = map.get(c); while (selfCount < sum) { char other = 'Ö'; // Ö=null for (char otherCandidate : map.keySet()) { if (otherCandidate == c) continue; else { other = otherCandidate; break; } } if (other == 'Ö') break; pairs.add(new Pair(c, other)); selfCount--; int otherCount = map.get(other) - 1; sum -= 2; if (otherCount > 0) { map.put(other, otherCount); } else { map.remove(other); } if (selfCount > 0) { map.put(c, selfCount); } else { map.remove(c); break; } } } // Try to resque the lonely assert map.size() < 2; if (map.size() > 0) { char lastChar = map.keySet().iterator().next(); int count = map.get(lastChar); if (count > 1) { for (int i = 0; i < pairs.size(); i++) { Pair p = pairs.get(i); if (p.a == lastChar) continue; pairs.set(i, new Pair(lastChar, p.a)); pairs.add(i + 1, new Pair(lastChar, p.b)); count -= 2; if (count <= 1) break; } } } System.out.println(pairs.size()); for (int i = 0; i < pairs.size(); i++) { Pair pair = pairs.get(i); System.out.println(Character.toString(pair.a) + Character.toString(pair.b)); } } }
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
QBAXGXJZJS |
correct output |
---|
5 XJ ZX SQ JG ... |
user output |
---|
5 QA BS GX XJ ... |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
SSSSSSSSSS |
correct output |
---|
0 |
user output |
---|
0 |
Test 3
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
SETTSESEEE |
correct output |
---|
5 ES ET ES ET ... |
user output |
---|
5 ES ET ES ET ... |
Test 4
Group: 1, 2, 3
Verdict: WRONG ANSWER
input |
---|
SSMRSSSSKR |
correct output |
---|
4 SR SR SM SK |
user output |
---|
5 SR SS RS SK ... |
Test 5
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
BIIILIIRRL |
correct output |
---|
5 IR IL IR IL ... |
user output |
---|
5 IB IR RI IL ... |
Test 6
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
YYGEYTDSTY |
correct output |
---|
5 YT YT YS YG ... |
user output |
---|
5 YS YT YT YD ... |
Test 7
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
MMMMMMMMMN |
correct output |
---|
1 MN |
user output |
---|
1 MN |
Test 8
Group: 2, 3
Verdict: ACCEPTED
input |
---|
XQQZJQDDJOWXDFVQUIODDJIZIQDQIW... |
correct output |
---|
500 DQ DQ DQ DQ ... |
user output |
---|
500 ZB ZC ZB ZC ... Truncated |
Test 9
Group: 2, 3
Verdict: ACCEPTED
input |
---|
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII... |
correct output |
---|
0 |
user output |
---|
0 |
Test 10
Group: 2, 3
Verdict: WRONG ANSWER
input |
---|
KEOHHYHHAIHLLHEKIHKAHHHHOHEHHE... |
correct output |
---|
493 HA HA HA HA ... |
user output |
---|
500 HA HC HA HC ... Truncated |
Test 11
Group: 2, 3
Verdict: WRONG ANSWER
input |
---|
WNNFXQNODQFSQVQQPNLQNQNNVVNXHN... |
correct output |
---|
499 NQ NQ NQ NQ ... |
user output |
---|
500 NA ND NA ND ... Truncated |
Test 12
Group: 2, 3
Verdict: ACCEPTED
input |
---|
VGAHMMMXMMVXAAMMMOMMMXVMMMYMXT... |
correct output |
---|
500 MH MH MH MH ... |
user output |
---|
500 MA MC MA MC ... Truncated |
Test 13
Group: 2, 3
Verdict: ACCEPTED
input |
---|
KKKKUUAKKAUKKKKFKKSVKCWKKKCVOJ... |
correct output |
---|
500 KI KI KI KI ... |
user output |
---|
500 KA KB KA KB ... Truncated |
Test 14
Group: 2, 3
Verdict: WRONG ANSWER
input |
---|
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVV... |
correct output |
---|
100 VP VP VP VP ... |
user output |
---|
105 VE VG VE VJ ... Truncated |
Test 15
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
FKKJJBWTSFCDEKFPOKIPWZSVKHACMC... |
correct output |
---|
100000 CK CK CK CK ... |
user output |
---|
(empty) |
Test 16
Group: 3
Verdict: ACCEPTED
input |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
correct output |
---|
0 |
user output |
---|
0 |
Test 17
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
WVKKVVADNVCVKLVYVVZVKVCTNKVLVV... |
correct output |
---|
99925 VC VC VC VC ... |
user output |
---|
(empty) |
Test 18
Group: 3
Verdict: WRONG ANSWER
input |
---|
BBBBBDNXDZQXBBYBBWBSBTMADXBBVZ... |
correct output |
---|
99999 BE BE BE BE ... |
user output |
---|
100000 BA BB AB AB ... Truncated |
Test 19
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
FBRDPLUMLZMLLLUFUCLEMCMULLZLFL... |
correct output |
---|
100000 LU LU LU LU ... |
user output |
---|
(empty) |
Test 20
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
UUBUBUTUJSLUVBUXTUUMUXUXTMXUXS... |
correct output |
---|
100000 UX UX UX UX ... |
user output |
---|
(empty) |
Test 21
Group: 3
Verdict: WRONG ANSWER
input |
---|
PPPPPPPPPPEPPPPPPPPPPBOPPPPPPP... |
correct output |
---|
20000 PB PB PB PB ... |
user output |
---|
0 |