Task: | Sudoku |
Sender: | |
Submission time: | 2015-08-14 21:34:13 +0300 |
Language: | Java |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 100 |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.20 s | details |
#2 | ACCEPTED | 0.19 s | details |
#3 | ACCEPTED | 0.19 s | details |
#4 | ACCEPTED | 0.20 s | details |
#5 | ACCEPTED | 0.19 s | details |
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;}// blocksint bX = 0;if (x < 3) bX = 0;else if (x < 6) bX = 3;else bX = 6;int bY = 0;if (y < 3) bY = 0;else if (y < 6) bY = 3;else bY = 6;for (int i=0; i<3; i++) {for (int j=0; j<3; j++) {varatut[s[bY+i][bX+j]] = 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: ACCEPTED
input |
---|
592836471 |
correct output |
---|
592836471 836471592 471592836 928364715 364715928 ... |
user output |
---|
592836471 134257689 678149235 213465798 456798123 ... |
Test 2
Verdict: ACCEPTED
input |
---|
672935418 |
correct output |
---|
672935418 935418672 418672935 729354186 354186729 ... |
user output |
---|
672935418 134268579 589147236 213456897 456789123 ... |
Test 3
Verdict: ACCEPTED
input |
---|
329174658 |
correct output |
---|
329174658 174658329 658329174 291746583 746583291 ... |
user output |
---|
329174658 145268379 678359124 213485796 456791283 ... |
Test 4
Verdict: ACCEPTED
input |
---|
376958421 |
correct output |
---|
376958421 958421376 421376958 769584213 584213769 ... |
user output |
---|
376958421 124367589 589124367 213475698 457689132 ... |
Test 5
Verdict: ACCEPTED
input |
---|
875694321 |
correct output |
---|
875694321 694321875 321875694 756943218 943218756 ... |
user output |
---|
875694321 123578469 469123578 214356897 356789142 ... |