Showing posts with label Competitive Programming. Show all posts
Showing posts with label Competitive Programming. Show all posts

Sunday, April 17, 2022

Plus Minus | HackerRank | C#

 Given an array of integers, calculate the ratios of its elements that are positive, negative, and zero. Print the decimal value of each fraction on a new line with  places after the decimal.

Note: This challenge introduces precision problems. The test cases are scaled to six decimal places, though answers with absolute error of up to  are acceptable.

Example

There are  elements, two positive, two negative and one zero. Their ratios are  and . Results are printed as:

0.400000
0.400000
0.200000

Function Description

Complete the plusMinus function in the editor below.

plusMinus has the following parameter(s):

  • int arr[n]: an array of integers

Print
Print the ratios of positive, negative and zero values in the array. Each value should be printed on a separate line with  digits after the decimal. The function should not return a value.

Input Format

The first line contains an integer, , the size of the array.
The second line contains  space-separated integers that describe .

Constraints


Output Format

Print the following  lines, each to  decimals:

  1. proportion of positive values
  2. proportion of negative values
  3. proportion of zeros

Sample Input

STDIN           Function
-----           --------
6               arr[] size n = 6
-4 3 -9 0 4 1   arr = [-4, 3, -9, 0, 4, 1]

Sample Output

0.500000
0.333333
0.166667

Explanation

There are  positive numbers,  negative numbers, and  zero in the array.
The proportions of occurrence are positive: , negative:  and zeros: .


SOLUTION

    public static void plusMinus(List<int> arr)
    {
        decimal pos = 0, neg = 0, zer = 0;
        int len = arr.Count;
        for(int i = 0; i < len; i++)
        {
            if(arr[i] > 0)pos++;
            else if(arr[i] < 0)neg++;
            else zer++;
        }
        Console.WriteLine("{0:N6}", pos/len);
        Console.WriteLine("{0:N6}", neg/len);
        Console.WriteLine("{0:N6}", zer/len);
    }

Thursday, July 9, 2020

Array Rotation

left rotation operation on an array shifts each of the array's elements  unit to the left. For example, if  left rotations are performed on array , then the array would become .

Given an array  of  integers and a number, , perform  left rotations on the array. Return the updated array to be printed as a single line of space-separated integers.

Function Description

Complete the function rotLeft in the editor below. It should return the resulting array of integers.

rotLeft has the following parameter(s):

  • An array of integers .
  • An integer , the number of rotations.

Input Format

The first line contains two space-separated integers  and , the size of  and the number of left rotations you must perform.
The second line contains  space-separated integers .

Constraints

Output Format

Print a single line of  space-separated integers denoting the final state of the array after performing  left rotations.

Sample Input

5 4

1 2 3 4 5

Sample Output

5 1 2 3 4

Solution:

//code by anewbieprogrammer

#include<iostream>
using namespace std;

void rotLeft(int arr[], int r, int n){
    int temp_arr[n];
    for(int i = 0; i < n; i++){
        temp_arr[i] = arr[i];
    }
    for(int ol = 0; ol < r; ol++){
        int temp = temp_arr[ol];
        for(int il = 1; il < n; il++){
            arr[il-1] = arr[il];
        }
        arr[n-1] = temp;
    }

    for(int i = 0; i < n; i++){
        cout<<arr[i]<<" ";
    }
}
int main(){
    int n, r;
    cin >> n >> r;
    int num_arr[n];
    for(int i = 0; i < n; i++){
        cin >> num_arr[i];
    }
    rotLeft(num_arr, r, n);

    return 0;
}


horizontal ads