Submission details
Task:Ruudukko
Sender:TapaniS
Submission time:2025-09-26 23:26:37 +0300
Language:Java
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED100
Test results
testverdicttime
#1ACCEPTED0.22 sdetails

Code

import java.util.*;


public class ruudukko {

	public static void main(String[] args) {

		Scanner input = new Scanner(System.in);

		int t = Integer.parseInt(input.nextLine());
		
		int[] hight = new int[t];
		int[] len = new int[t];
		
		for (int i = 0; i < t; i++) {
			
			hight[i] = input.nextInt();
			len[i] =  input.nextInt();
			
		}
		
		input.close(); 
		
		
		for (int i = 0; i < t; i++) {	
		
			int n = hight[i];
			int m = len[i];
			
			if ((n == 1) && (m == 1)) {
				System.out.println("YES");
				System.out.println("1");
				continue;
			}
			
			if ((n == 1) && (m == 2)) {
				System.out.println("NO");
				continue;
			}
			
			if ((n == 2) && (m == 2)) {
				System.out.println("NO");
				continue;
			}	
			
			if ((n == 2) && (m == 1)) {
				System.out.println("NO");
				continue;
			}	
			
			if ((n == 3) && (m == 1)) {
				System.out.println("NO");
				continue;
			}
			
			if ((n == 1) && (m == 3)) {
				System.out.println("NO");
				continue;
			}
			
			if ((n == 2) && (m == 3)) {
				System.out.println("YES");
				System.out.println("4 1 6");
				System.out.println("2 5 3");
				continue;
			}
			
			if ((n == 3) && (m == 2)) {
				System.out.println("YES");
				System.out.println("4 2");
				System.out.println("1 5");
				System.out.println("6 3");
				continue;
			}
			
			if ((n == 3) && (m == 3)) {
				System.out.println("YES");
				System.out.println("1 4 8");
				System.out.println("6 2 5");
				System.out.println("9 7 3");
				continue;
			}
			
			if (m > 3) {
				System.out.println("YES");
						
						for (int i2 = 0; i2 < n; i2++) { // for every row
							
							int[] a = new int[m];
							int b = 0;
							
							for (int i3 = 0; i3 < (m-1); i3++) {  // inside row
								i3++;
								b++;
								a[i3] = i2 * m + b;
							}
							
							for (int i3 = 0; i3 < m; i3++) {  // inside row
								b++;
								a[i3] = i2 * m + b;
								i3++;
							}
							
							for (int i4 = 0; i4 < (m-1); i4++) {  // inside row
							
								System.out.print(a[i4] );
								System.out.print(" ");
							}
							
							System.out.println(a[m-1] );
							
						}  // every row
						
				continue;
			}
			
			
			if (n > 3) {
				System.out.println("YES");

						int[] a = new int[n];
						
						for (int i2 = 0; i2 < 1; i2++) { // for first row
							
							int b = 0;
							
							for (int i3 = 0; i3 < (n-1); i3++) {  // inside row
								i3++;
								b++;
								a[i3] = i2 * n + b;
							}
							
							for (int i3 = 0; i3 < n; i3++) {  // inside row
								b++;
								a[i3] = i2 * n + b;
								i3++;
							}
							
						}
						
						for (int i5 = 0; i5 < n; i5++) { // for all row
						
								int c = a[i5];
								System.out.print(c);
								
								if (m > 1) {
									System.out.print(" ");
								}
								
								else {
									System.out.println("");
								}
								
								
							for (int i4 = 1; i4 < (m-1); i4++) {  // inside row
							
								c = (i4 * n) + a[i5];
								System.out.print(c);
								System.out.print(" ");

							}
							
							c = c + n;
							
							if (m > 1) {
								System.out.println(c);
							}
							
							
						}  // every row


				continue;
			}

			


		} // for i1 - all case end
		
		
    }  // main program
} // class

Test details

Test 1

Verdict: ACCEPTED

input
100
1 1
1 2
2 1
1 3
...

correct output
YES
1
NO
NO
NO
...

user output
YES
1
NO
NO
NO
...