CSES - Putka Open 2015 – 3/6 - Results
Submission details
Task:Kasat
Sender:
Submission time:2015-09-13 19:26:08 +0300
Language:Java
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.31 s1details
#20.31 s2details
#30.31 s3details

Code

import java.util.Scanner;

public class Main {

    private static int min, med, max;

    public static void main(String[] args) {
        int kasojenLkm = 3;
        Scanner lukija = new Scanner(System.in);

        int testeja = lukija.nextInt();
        int[][] kasat = new int[testeja][kasojenLkm];

        for (int j = 0; j < testeja; j++) {
            kasat[j][0] = lukija.nextInt();
            kasat[j][1] = lukija.nextInt();
            kasat[j][2] = lukija.nextInt();
            int kierroksia = lukija.nextInt();

            if (kasat[j][0] == kasat[j][1] && kasat[j][0] == kasat[j][2]) {
                if (kierroksia % 2 != 0) {
                    kasat[j][0]--;
                    kasat[j][2]++;
                }
            } else {
                etsiJarjestys(kasat[j]);
                if (kasat[j][min] != kasat[j][med]) {
                    int lisays = kasat[j][med] - kasat[j][min];
                    if (lisays > kierroksia) {
                        kasat[j][min] += kierroksia;
                        kasat[j][max] -= kierroksia;
                        kierroksia = 0;
                    } else {
                        kasat[j][min] += lisays;
                        kasat[j][max] -= lisays;
                        kierroksia -= lisays;
                    }
                }
                if (kasat[j][0] == kasat[j][1] && kasat[j][0] == kasat[j][2]) {
                    if (kierroksia % 2 != 0) {
                        kasat[j][0]--;
                        kasat[j][2]++;
                    }
                    kierroksia = 0;
                }
                if (kierroksia > 0 && kasat[j][min] == kasat[j][med]) {
                    int lkm = (kasat[j][max] - kasat[j][min]) / 2;
                    if (lkm % 2 == 0) {
                        lkm++;
                    }
                    if (lkm > kierroksia) {
                        lkm = kierroksia;
                    }
                    kasat[j][min] += (lkm / 2);
                    kasat[j][med] += ((lkm + 1) / 2);
                    kasat[j][max] -= lkm;
                }
            }
        }

        for (int j = 0; j < testeja; j++) {
            etsiJarjestys(kasat[j]);
            System.out.print(kasat[j][min] + " " + kasat[j][med] + " " + kasat[j][max]);
            System.out.println("");
        }
    }

    private static void etsiJarjestys(int[] kasat) {
        if (kasat[0] > kasat[1]) {
            if (kasat[0] > kasat[2]) {
                max = 0;
                if (kasat[1] > kasat[2]) {
                    med = 1;
                    min = 2;
                } else {
                    med = 2;
                    min = 1;
                }
            } else {
                med = 0;
                if (kasat[1] > kasat[2]) {
                    max = 1;
                    min = 2;
                } else {
                    max = 2;
                    min = 1;
                }
            }
        } else {
            if (kasat[1] > kasat[2]) {
                max = 1;
                if (kasat[0] > kasat[2]) {
                    med = 0;
                    min = 2;
                } else {
                    med = 2;
                    min = 0;
                }
            } else {
                med = 1;
                max = 2;
                min = 0;
            }
        }
    }
}

Test details

Test 1

Group: 1

Verdict:

input
1000
7 69 64 45
37 5 30 81
50 49 37 38
46 37 100 6
...

correct output
46 47 47
24 24 24
45 45 46
43 46 94
32 32 33
...

user output
24 52 64
21 26 26
43 47 47
43 46 94
30 34 34
...

Test 2

Group: 2

Verdict:

input
1000
19 13 88 978977859
67 57 39 960003440
81 16 67 971611942
92 96 2 957979201
...

correct output
39 40 41
54 54 55
54 55 55
63 63 64
36 37 38
...

user output
34 35 51
52 56 56
47 59 59
49 71 71
34 39 39
...

Test 3

Group: 3

Verdict:

input
1000
211358104 753479603 549127067 ...

correct output
504654924 504654925 504654925
589019272 589019272 589019273
101309993 101309994 101309994
436205296 436205297 436205298
351062567 351062568 351062568
...

user output
482418853 515772961 515772961
484871128 641093345 641093345
81456542 111236720 111236720
418142303 418142304 472331284
302554812 375316446 375316446
...