| Task: | Kulut |
| Sender: | Septicuss |
| Submission time: | 2023-01-21 14:36:47 +0200 |
| Language: | Java |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 100 |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.17 s | details |
| #2 | ACCEPTED | 0.16 s | details |
| #3 | ACCEPTED | 0.17 s | details |
| #4 | ACCEPTED | 0.17 s | details |
| #5 | ACCEPTED | 0.17 s | details |
| #6 | ACCEPTED | 0.16 s | details |
| #7 | ACCEPTED | 0.16 s | details |
| #8 | ACCEPTED | 0.16 s | details |
| #9 | ACCEPTED | 0.16 s | details |
| #10 | ACCEPTED | 0.16 s | details |
| #11 | ACCEPTED | 0.07 s | details |
Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
public class A {
final static FastReader reader = new FastReader();
final static PrintWriter writer = new PrintWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) {
int n = reader.nextInt();
int[] payments = new int[4];
int total = 0;
for (int i = 0; i < n; i++) {
String name = reader.next();
int cost = reader.nextInt();
payments[name.charAt(0) - 'A'] += cost;
total += cost;
}
reader.close();
int balanced = total / 4;
for (int i = 0; i < payments.length; i++) {
payments[i] = payments[i] - balanced;
}
int i = 0;
int k = 0;
List<String> tapahtumat = new ArrayList<>();
while (!balanced(payments)) {
if (payments[i] < 0) {
int giving = payments[i];
for (int j = 0; j < payments.length; j++) {
if (i == j) continue;
if (payments[j] < 0) continue;
if (payments[j] == 0) continue;
int requesting = payments[j];
int gave = requesting + giving;
payments[j] = gave;
payments[i] = 0;
char a = (char)('A' + i);
char b = (char)('A' + j);
tapahtumat.add(a + " " + b + " "+ Math.abs(giving));
k++;
break;
}
}
i++;
if (i == 4)
i = 0;
}
writer.println(tapahtumat.size());
for (var s : tapahtumat)
writer.println(s);
writer.flush();
writer.close();
}
static boolean balanced(int[] arr){
for (int i = 0; i < arr.length; i++) {
if (arr[i] != 0) return false;
}
return true;
}
static class FastReader {
BufferedReader reader;
StringTokenizer tokenizer;
public FastReader() {
this.reader = new BufferedReader(new InputStreamReader(System.in));
this.tokenizer = null;
}
String next() {
while (tokenizer == null || !tokenizer.hasMoreElements()) {
try {
tokenizer = new StringTokenizer(reader.readLine());
} catch (Exception e) {
}
}
return tokenizer.nextToken();
}
String nextLine() {
try {
return reader.readLine();
} catch (IOException ex) {
}
return null;
}
int nextInt() {
return Integer.parseInt(next());
}
long nextLong() {
return Long.parseLong(next());
}
BigInteger nextBigInt() {
return new BigInteger(next());
}
void close(){
try {
reader.close();
} catch (IOException ex) {
Logger.getLogger(A.class.getName()).log(Level.SEVERE, null, ex);
}
reader = null;
tokenizer = null;
}
}
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 100 C 224 D 4 D 624 D 64 ... |
| correct output |
|---|
| 3 A B 630 C B 1636 C D 1470 |
| user output |
|---|
| 3 A B 630 C B 3106 B D 1470 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 100 D 768 B 608 A 116 C 80 ... |
| correct output |
|---|
| 3 B A 756 B C 1668 D C 1776 |
| user output |
|---|
| 3 B A 2424 D C 1776 A C 1668 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 100 B 184 C 840 D 648 A 876 ... |
| correct output |
|---|
| 3 A B 1131 B C 190 C D 297 |
| user output |
|---|
| 3 A B 1131 B D 190 C D 107 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 100 C 560 D 664 D 632 C 944 ... |
| correct output |
|---|
| 3 B A 3230 C B 2572 D C 1594 |
| user output |
|---|
| 3 B A 658 C A 978 D A 1594 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 100 B 20 A 664 D 504 A 248 ... |
| correct output |
|---|
| 3 A B 138 B C 652 C D 350 |
| user output |
|---|
| 3 A C 138 B C 514 C D 350 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 100 B 204 D 520 C 500 C 256 ... |
| correct output |
|---|
| 3 B A 285 B C 482 C D 1321 |
| user output |
|---|
| 3 B A 767 C D 839 A D 482 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 100 B 672 B 840 A 712 C 640 ... |
| correct output |
|---|
| 3 B A 324 C B 5128 D C 2920 |
| user output |
|---|
| 3 C A 2208 D B 2920 A B 1884 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 100 C 860 D 732 A 952 C 940 ... |
| correct output |
|---|
| 3 A B 24 C B 536 D C 2252 |
| user output |
|---|
| 3 A B 24 D B 2252 B C 1716 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 100 C 84 A 592 B 840 C 708 ... |
| correct output |
|---|
| 3 A B 115 B C 1746 D C 3791 |
| user output |
|---|
| 3 A C 115 B C 1631 D C 3791 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 1 A 100 |
| correct output |
|---|
| 3 B A 75 C B 50 D C 25 |
| user output |
|---|
| 3 B A 25 C A 25 D A 25 |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 4 A 25 B 25 C 25 D 25 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
