| Task: | Aita |
| Sender: | |
| Submission time: | 2015-07-19 01:42:02 +0300 |
| Language: | Java |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 17 |
| #2 | ACCEPTED | 28 |
| #3 | ACCEPTED | 55 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.25 s | 1 | details |
| #2 | ACCEPTED | 0.23 s | 1 | details |
| #3 | ACCEPTED | 0.23 s | 1 | details |
| #4 | ACCEPTED | 0.22 s | 1 | details |
| #5 | ACCEPTED | 0.22 s | 1 | details |
| #6 | ACCEPTED | 0.33 s | 2 | details |
| #7 | ACCEPTED | 0.34 s | 2 | details |
| #8 | ACCEPTED | 0.33 s | 2 | details |
| #9 | ACCEPTED | 0.35 s | 2 | details |
| #10 | ACCEPTED | 0.22 s | 2 | details |
| #11 | ACCEPTED | 0.33 s | 3 | details |
| #12 | ACCEPTED | 0.34 s | 3 | details |
| #13 | ACCEPTED | 0.35 s | 3 | details |
| #14 | ACCEPTED | 0.41 s | 3 | details |
| #15 | ACCEPTED | 0.35 s | 3 | details |
Code
//package putka1.aita;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Scanner;
import java.util.TreeSet;
/**
*
* @author Adreno
*/
public class Putka1Aita {
public static int n;
public static int k;
public static StringBuilder j;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
n = input.nextInt();
k = input.nextInt();
j = new StringBuilder("");
HashSet<Integer> keskiVasen = new HashSet<>();
HashSet<Integer> keskiOikea = new HashSet<>();
int v = (n/2) + 1 - (k+1) / 2;
int o = v + k;
double middlePoint = 1.00 * n / 2 + 1;
//System.out.println("midd" + middlePoint);
for (int i=v+1; i<middlePoint; i++) {
keskiVasen.add(i);
//System.out.println("Lisätään keskivasempaan " + i);
}
int ekaOikeal = n/2 + 1;
if (n % 2 != 0) ekaOikeal++;
for (int i=ekaOikeal; i<o; i++) {
keskiOikea.add(i);
//System.out.println("Lisätään keskioikeaan " + i);
}
//System.out.println("v=" + v + ", o=" + o);
int count = 0;
boolean oikealtaVasemmalle = true;
int viimesin = o; // jotta ensimmäinen siirto ois v
while (true) {
if (oikealtaVasemmalle) {
if (keskiVasen.remove(viimesin-k)) {
j.append((viimesin-k) + " ");
viimesin = viimesin-k;
} else {
if (v < 1) break;
j.append(v + " ");
viimesin = v;
v--;
}
oikealtaVasemmalle = false;
} else {
if (keskiOikea.remove(viimesin+k)) {
j.append((viimesin+k) + " ");
viimesin = viimesin+k;
}
else {
if (o > n) break;
j.append(o + " ");
viimesin = o;
o++;
}
oikealtaVasemmalle = true;
}
//System.out.println("SB: " + j);
count++;
}
if (n % 2 != 0 && (viimesin - (n/2 + 1) >= k)) {
j.append(n/2 + 1);
count++;
}
if (count == n) System.out.println(j);
else {
v = n - k;
o = n;
j = new StringBuilder();
count = 0;
oikealtaVasemmalle = true;
while (true) {
if (oikealtaVasemmalle) {
if (v < 1) break;
j.append(v + " ");
v--;
oikealtaVasemmalle = false;
} else {
j.append(o + " ");
o--;
oikealtaVasemmalle = true;
}
count++;
}
if (count == n) System.out.println(j);
else System.out.println("QAQ");
}
}
}
// public static void main(String[] args) {
// Scanner input = new Scanner(System.in);
// int n = input.nextInt();
// int k = input.nextInt();
// StringBuilder j = new StringBuilder("");
// int alottaja = k;
// int nykyinen = k;
// int count = 0;
// while (alottaja < 1+k) {
// while (nykyinen <= n) {
// j.append(nykyinen + " ");
// nykyinen += k;
// count++;
// }
// alottaja++;
// nykyinen = alottaja;
// }
// alottaja = k;
// while (alottaja > 1) {
// alottaja--;
// nykyinen = alottaja;
// while (nykyinen <= n) {
// j.append(nykyinen + " ");
// nykyinen += k;
// count++;
// }
// }
// if (count < n) System.out.println("QAQ");
// else System.out.println(j);
// }Test details
Test 1
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 2 2 |
| correct output |
|---|
| QAQ |
| user output |
|---|
| QAQ |
Test 2
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 3 2 |
| correct output |
|---|
| QAQ |
| user output |
|---|
| QAQ |
Test 3
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 4 2 |
| correct output |
|---|
| 3 1 4 2 |
| user output |
|---|
| 2 4 1 3 |
Test 4
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 7 4 |
| correct output |
|---|
| QAQ |
| user output |
|---|
| QAQ |
Test 5
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 8 4 |
| correct output |
|---|
| 5 1 6 2 7 3 8 4 |
| user output |
|---|
| 4 8 3 7 2 6 1 5 |
Test 6
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 80476 2 |
| correct output |
|---|
| 40239 1 40240 2 40241 3 40242 ... |
| user output |
|---|
| 40238 40240 40237 40239 40236 ... |
Test 7
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 68652 2 |
| correct output |
|---|
| 34327 1 34328 2 34329 3 34330 ... |
| user output |
|---|
| 34326 34328 34325 34327 34324 ... |
Test 8
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 62735 2 |
| correct output |
|---|
| 31368 1 31369 2 31370 3 31371 ... |
| user output |
|---|
| 31367 31369 31366 31370 31368 ... |
Test 9
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 71954 2 |
| correct output |
|---|
| 35978 1 35979 2 35980 3 35981 ... |
| user output |
|---|
| 35977 35979 35976 35978 35975 ... |
Test 10
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 4 2 |
| correct output |
|---|
| 3 1 4 2 |
| user output |
|---|
| 2 4 1 3 |
Test 11
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 89814 3 |
| correct output |
|---|
| 44908 1 44909 2 44910 3 44911 ... |
| user output |
|---|
| 44906 44909 44905 44908 44904 ... |
Test 12
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 91140 5 |
| correct output |
|---|
| 45571 1 45572 2 45573 3 45574 ... |
| user output |
|---|
| 45568 45573 45567 45572 45566 ... |
Test 13
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 66703 16675 |
| correct output |
|---|
| 33352 1 33353 2 33354 3 33355 ... |
| user output |
|---|
| 25014 41689 25013 41688 25012 ... |
Test 14
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 66666 33333 |
| correct output |
|---|
| 33334 1 33335 2 33336 3 33337 ... |
| user output |
|---|
| 33333 66666 33332 66665 33331 ... |
Test 15
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 66666 33334 |
| correct output |
|---|
| QAQ |
| user output |
|---|
| QAQ |
