| Task: | Fraktaali |
| Sender: | tuomask |
| Submission time: | 2017-10-03 19:29:11 +0300 |
| Language: | Java |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 10 |
| #2 | ACCEPTED | 10 |
| #3 | ACCEPTED | 10 |
| #4 | ACCEPTED | 10 |
| #5 | ACCEPTED | 10 |
| #6 | ACCEPTED | 10 |
| #7 | ACCEPTED | 10 |
| #8 | ACCEPTED | 10 |
| #9 | ACCEPTED | 10 |
| #10 | ACCEPTED | 10 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.15 s | 1 | details |
| #2 | ACCEPTED | 0.16 s | 2 | details |
| #3 | ACCEPTED | 0.17 s | 3 | details |
| #4 | ACCEPTED | 0.15 s | 4 | details |
| #5 | ACCEPTED | 0.22 s | 5 | details |
| #6 | ACCEPTED | 0.22 s | 6 | details |
| #7 | ACCEPTED | 0.20 s | 7 | details |
| #8 | ACCEPTED | 0.23 s | 8 | details |
| #9 | ACCEPTED | 0.34 s | 9 | details |
| #10 | ACCEPTED | 0.60 s | 10 | details |
Code
import java.util.*;
/*
* Datatähti 2018
* Tuomas Karjalainen, Nurmeksen lukio
*/
public class Fraktaali {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
final int maxK = Integer.parseInt(input.nextLine());
final int gridSize = gridSizeAtK(maxK);
boolean[][] grid = new boolean[gridSize][gridSize];
grid[0][0] = true;
for (int k=1; k < maxK; k++) {
grid = stepFractal(grid, k);
}
printGrid(grid);
}
private static boolean[][] stepFractal(boolean[][] grid, int startK) {
int startSize = gridSizeAtK(startK);
// Clone right
for (int y=0; y<startSize; y++) {
for (int x=0; x<startSize; x++) {
grid[startSize + x][y] = grid[x][y];
}
}
// Clone down
for (int y=0; y<startSize; y++) {
for (int x=0; x<startSize; x++) {
grid[x][startSize + y] = grid[x][y];
}
}
// Clone south-east
for (int y=0; y<startSize; y++) {
for (int x=0; x<startSize; x++) {
grid[startSize + x][startSize + y] = !grid[x][y];
}
}
return grid;
}
private static int gridSizeAtK(int k) {
int s = 1;
while (k-- > 1) {
s *= 2;
}
return s;
}
private static void printGrid(boolean[][] grid) {
for (int y=0; y < grid.length; y++) {
for (int x=0; x < grid.length; x++) {
System.out.print(grid[x][y] ? '#' : '.');
}
System.out.println();
}
}
}
Test details
Test 1
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 1 |
| correct output |
|---|
| # |
| user output |
|---|
| # |
Test 2
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 2 |
| correct output |
|---|
| ## #. |
| user output |
|---|
| ## #. |
Test 3
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 3 |
| correct output |
|---|
| #### #.#. ##.. #..# |
| user output |
|---|
| #### #.#. ##.. #..# |
Test 4
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 4 |
| correct output |
|---|
| ######## #.#.#.#. ##..##.. #..##..# ####.... ... |
| user output |
|---|
| ######## #.#.#.#. ##..##.. #..##..# ####.... ... |
Test 5
Group: 5
Verdict: ACCEPTED
| input |
|---|
| 5 |
| correct output |
|---|
| ################ #.#.#.#.#.#.#.#. ##..##..##..##.. #..##..##..##..# ####....####.... ... |
| user output |
|---|
| ################ #.#.#.#.#.#.#.#. ##..##..##..##.. #..##..##..##..# ####....####.... ... |
Test 6
Group: 6
Verdict: ACCEPTED
| input |
|---|
| 6 |
| correct output |
|---|
| ##############################... |
| user output |
|---|
| ##############################... |
Test 7
Group: 7
Verdict: ACCEPTED
| input |
|---|
| 7 |
| correct output |
|---|
| ##############################... |
| user output |
|---|
| ##############################... |
Test 8
Group: 8
Verdict: ACCEPTED
| input |
|---|
| 8 |
| correct output |
|---|
| ##############################... |
| user output |
|---|
| ##############################... |
Test 9
Group: 9
Verdict: ACCEPTED
| input |
|---|
| 9 |
| correct output |
|---|
| ##############################... |
| user output |
|---|
| ##############################... |
Test 10
Group: 10
Verdict: ACCEPTED
| input |
|---|
| 10 |
| correct output |
|---|
| ##############################... |
| user output |
|---|
| ##############################... |
