CSES - Putka Open 2015 – 2/6 - Results
Submission details
Task:Sudoku
Sender:
Submission time:2015-08-14 21:19:28 +0300
Language:Java
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#10.19 sdetails
#20.21 sdetails
#30.19 sdetails
#40.19 sdetails
#50.20 sdetails

Code

//package putka2.sudoku;

import java.util.Scanner;

/**
 *
 * @author Adreno
 */
public class Putka2Sudoku {

    public static int[][] s;
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String syote = "" + input.nextInt();
        s = new int[9][9];
        for (int i=0; i<9; i++) {
            s[0][i] = Integer.parseInt("" + syote.charAt(i));
        }
        ratkaise(1, 0);
        for (int y=0; y<9; y++) {
            for (int x=0; x<9; x++) {
                System.out.print(s[y][x]);
            }
            System.out.println();
        }
    }
    
    public static boolean ratkaise(int y, int x) {
        boolean[] varatut = new boolean[10];
        for (int i=0; i<y; i++) {
            varatut[s[i][x]] = true;
        }
        for (int i=0; i<x; i++) {
            varatut[s[y][i]] = true;
        }
        int nextY = y;
        int nextX = x+1;
        if (nextX == 9) {
            nextX = 0;
            nextY = y+1;
            if (nextY == 9) {
                for (int i=1; i<=9; i++) {
                    if (varatut[i]) continue;
                    s[y][x] = i;
                    return true;
                }
            }
        }
        for (int i=1; i<=9; i++) {
            if (varatut[i]) continue;
            s[y][x] = i;
            if (ratkaise(nextY, nextX)) return true;
            s[y][x] = 0;
        }
        return false;
    }
    
}

Test details

Test 1

Verdict:

input
592836471

correct output
592836471
836471592
471592836
928364715
364715928
...

user output
592836471
123457689
214365798
341278956
435129867
...

Test 2

Verdict:

input
672935418

correct output
672935418
935418672
418672935
729354186
354186729
...

user output
672935418
123456789
214367895
341278956
435189267
...

Test 3

Verdict:

input
329174658

correct output
329174658
174658329
658329174
291746583
746583291
...

user output
329174658
132456789
213547896
451238967
546389172
...

Test 4

Verdict:

input
376958421

correct output
376958421
958421376
421376958
769584213
584213769
...

user output
376958421
123465789
214376598
431287956
542139867
...

Test 5

Verdict:

input
875694321

correct output
875694321
694321875
321875694
756943218
943218756
...

user output
875694321
123456789
214365897
341278956
432189675
...