Submission details
Task:Hypyt
Sender:TapaniS
Submission time:2025-10-18 20:24:33 +0300
Language:Java
Status:READY
Result:30
Feedback
groupverdictscore
#1ACCEPTED30
#20
Test results
testverdicttimegroup
#1ACCEPTED0.20 s1, 2details
#2ACCEPTED0.25 s1, 2details
#3ACCEPTED0.71 s2details
#4--2details
#5--2details

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;
		
		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;			

			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;		
			
			System.out.println(dy + " " + dx);

			}
		}


		}   // 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
...

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
...

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
...

Test 4

Group: 2

Verdict:

input
100
46 47
41 39
46 36
46 30
...

correct output
45 46
-45 -45
45 44
-45 -43
45 42
...

user output
(empty)

Test 5

Group: 2

Verdict:

input
100
50 50
50 50
50 50
50 50
...

correct output
49 49
-49 -48
49 47
-49 -46
49 45
...

user output
(empty)