Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package exercise;
- import java.util.*;
- public class tema2task11 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Map<Integer, List<Integer>> map = new LinkedHashMap<>();
- String[] data = scanner.nextLine().split("\\s+");
- int[][] matrix = new int[Integer.parseInt(data[0])][Integer.parseInt(data[1])];
- //TODO fulfill the matrix
- for (int i = 0; i <matrix.length ; i++) {
- int[] current = Arrays.stream(scanner.nextLine().split("\\s+"))
- .mapToInt(Integer::parseInt).toArray();
- matrix[i]=current;
- }
- int wait =0 ;
- //TODO printing
- int group=0;
- int counter=0;
- for (int i = matrix.length-1; i >=0 ; i--) {
- int[] current = matrix[i];
- for (int j = current.length-1; j >=group ; j--) {
- int value = matrix[i][j];
- if(wait==0){
- List<Integer> list = new ArrayList<>();
- list.add(value);
- map.put(counter,list);
- counter++;
- }else{
- List<Integer> list = map.get(counter);
- list.add(value);
- map.put(counter,list);
- counter++;
- }
- }
- for (int j = matrix.length-1-1-group; j >=0 ; j--) {
- int[] curr = matrix[j];
- if (group >= curr.length) {
- continue;
- }
- int value = curr[group];
- if(wait==0){
- List<Integer> list = new ArrayList<>();
- list.add(value);
- map.put(counter,list);
- counter++;
- }else{
- List<Integer> list = map.get(counter);
- list.add(value);
- map.put(counter,list);
- counter++;
- }
- }
- group++;
- counter=group;
- wait++;
- }
- map.entrySet().stream().forEach(entry->{
- List<Integer> list = map.get(entry.getKey());
- for (int n :list) {
- System.out.print(n+" ");
- }
- System.out.println();
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement