Easy - Peasy (Contest)

Easy - Peasy (Contest) easy Time Limit: 2 sec Memory Limit: 128000 kB

Problem Statement :

Given an array of length N in which you can swap two elements if their sum is odd i.e for every i (1 to N) and j (1 to N) if (Arr[i] + Arr[j]) is odd then you can swap these elements. What is the lexicographically smallest array you can obtain? Input First line of input contains a single integer N. Next line contains N space separated integers depicting the elements of the array.

Constraints:- 1 <= N <= 100000 1 <= Arr[i] <= 100000 Output Print N space separated elements i. e the array which is the lexicographically smallest possible Example Sample Input:- 3 4 1 7

Sample Output:- 1 4 7

Explanation:- Swap 1 and 2 as their sum 4 + 1 = 5 is odd

Sample Input:- 2 2 4

Sample Output:- 2 4

Sample Input:- 2 5 3

Sample Output:- 5 3

link:https://my.newtonschool.co/playground/code/wbb491jaf8im

import java.io.*; // for handling input/output
import java.util.*; // contains Collections framework

// don't change the name of this class
// you can add inner classes if needed
class Main {
    static void smaller(int arr[], int n){
        int odd=0;
        int even=0;
        for(int i=0;i<n;i++){
            if(arr[i]%2==1)
            odd++;
            else
            even++;
        }
        if(odd>0 && even>0)
        Arrays.sort(arr);
        for(int i=0;i<n;i++){
            System.out.print(arr[i]+" ");
        }
    }
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        int arr[]=new int[n];
        for(int i=0;i<n;i++){
            arr[i]=sc.nextInt();
        }
        smaller(arr,n);

    }
}
 
 

Last updated