| Task: | Hypyt |
| Sender: | TapaniS |
| Submission time: | 2025-10-18 21:30:07 +0300 |
| Language: | Java |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 30 |
| #2 | ACCEPTED | 70 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.19 s | 1, 2 | details |
| #2 | ACCEPTED | 0.22 s | 1, 2 | details |
| #3 | ACCEPTED | 0.33 s | 2 | details |
| #4 | ACCEPTED | 0.39 s | 2 | details |
| #5 | ACCEPTED | 0.45 s | 2 | details |
Code
import java.util.*;
public class hypyt4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int t = Integer.parseInt(input.nextLine());
int[] n = new int[t]; // korkeus
int[] m = new int[t]; //leveys
String[] numerot = new String[t]; // numerot
for (int i = 0; i < t; i++) {
numerot[i] = input.nextLine();
String[] numberParts = numerot[i].split("\\s+");
n[i] = Integer.parseInt(numberParts[0]);
m[i] = Integer.parseInt(numberParts[1]);
}
input.close();
// Program here
for (int i = 0; i < t; i++) { // tapaus t
int kor = n[i];
int lev = m[i];
if ((kor == 1) && (lev == 1)) {
continue;
}
if ((kor == 1) && (lev == 2)) {
System.out.println("0 1");
continue;
}
if ((kor == 2) && (lev == 1)) {
System.out.println("1 0");
continue;
}
if ((kor == 2) && (lev == 2)) {
System.out.println("0 1");
System.out.println("1 0");
System.out.println("0 -1");
continue;
}
// korkeus & leveys > 2
int kpl = kor * lev;
int RiviY[][] = new int[kor + 2][(lev + 2)];
int RiviX[][] = new int[2][(lev + 2)];
// y-arvot
if ((lev % 2) == 0) {
int val1 = 1;
int val2 = kor;
for (int i1 = 1; i1 <= kor; i1 += 2) {
for (int i2 = 1; i2 <= lev; i2 += 2) {
RiviY[i1][i2] = val1;
RiviY[i1+1][i2] = val1;
}
val1++;
}
for (int i1 = 1; i1 <= kor; i1 += 2) {
for (int i2 = 2; i2 <= lev; i2 += 2) {
RiviY[i1][i2] = val2;
RiviY[i1+1][i2] = val2;
}
val2--;
}
} // lev parillinen
if ((lev % 2) == 1) {
int val1 = 1;
int val2 = kor;
for (int i1 = 1; i1 <= kor; i1 += 2) {
for (int i2 = 1; i2 <= lev; i2 += 2) {
RiviY[i1][i2] = val1;
RiviY[i1+1][i2] = val2;
}
val1++;
val2--;
}
val1 = 1;
val2 = kor;
for (int i1 = 1; i1 <= kor; i1 += 2) {
for (int i2 = 2; i2 <= lev; i2 += 2) {
RiviY[i1][i2] = val2;
RiviY[i1+1][i2] = val1;
}
val1++;
val2--;
}
} // lev pariton end
if ((kor % 2) == 1) {
for (int i2 = 1; i2 <= lev; i2++) {
RiviY[kor][i2] = (kor+1)/2;
}
} // kor pariton y arvot kaikki ok
// x-arvot alla
int val1 = 1;
int val2 = lev;
for (int i2 = 1; i2 <= lev; i2 += 2) {
RiviX[1][i2] = val1; val1++;
RiviX[1][i2+1] = val2; val2--;
}
val1 = 1;
val2 = lev;
for (int i2 = lev; i2 > 0; i2 -= 2) {
RiviX[0][i2] = val1; val1++;
RiviX[0][i2-1] = val2; val2--;
}
// x-arvot ok
// tulostus
int dy = 0;
int dx = 0;
int indX = 1;
int lastY = RiviY[1][1];
int lastX = RiviX[1][1];
int y2 = 0;
int x2 = 0;
StringBuilder sb = new StringBuilder();
for (int i5 = 2; i5 < (lev+1); i5++) {
y2 = RiviY[1][i5];
x2 = RiviX[1][i5];
dy = y2- lastY;
dx = x2- lastX;
lastY = y2;
lastX = x2;
sb.append(dy + " " + dx).append('\n');
// System.out.println(dy + " " + dx);
}
for (int i4 = 2; i4 < (kor+1); i4++) {
for (int i5 = 1; i5 < (lev+1); i5++) {
indX = i4 % 2;
y2 = RiviY[i4][i5];
x2 = RiviX[indX][i5];
dy = y2 - lastY;
dx = x2 - lastX;
lastY = y2;
lastX = x2;
sb.append(dy + " " + dx).append('\n');
// System.out.println(dy + " " + dx);
}
}
System.out.print(sb.toString());
} // tapaus t
}
}Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 25 1 1 1 2 1 3 1 4 ... |
| correct output |
|---|
| 0 1 0 2 0 -1 0 3 0 -2 ... |
| user output |
|---|
| 0 1 0 2 0 -1 0 3 0 -2 ... Truncated |
Test 2
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 100 5 5 5 5 5 5 5 5 ... |
| correct output |
|---|
| 4 4 -4 -3 4 2 -4 -1 4 0 ... |
| user output |
|---|
| 4 4 -4 -3 4 2 -4 -1 4 0 ... Truncated |
Test 3
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 100 1 25 20 40 5 34 50 34 ... |
| correct output |
|---|
| 0 24 0 -23 0 22 0 -21 0 20 ... |
| user output |
|---|
| 0 24 0 -23 0 22 0 -21 0 20 ... Truncated |
Test 4
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 100 46 47 41 39 46 36 46 30 ... |
| correct output |
|---|
| 45 46 -45 -45 45 44 -45 -43 45 42 ... |
| user output |
|---|
| 45 46 -45 -45 45 44 -45 -43 45 42 ... Truncated |
Test 5
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 100 50 50 50 50 50 50 50 50 ... |
| correct output |
|---|
| 49 49 -49 -48 49 47 -49 -46 49 45 ... |
| user output |
|---|
| 49 49 -49 -48 49 47 -49 -46 49 45 ... Truncated |
