Sunday, 23 September 2018

Find four elements that sum to a given value


THESE IS THE QUESTION ASKED IN AMAZON AND OYO ROOMS

THE QUESTION IS TO

FIND ALL THE POSSIBLE CASE WHOSE SUM SHOULD BE THE SUM OF FOUR ELEMENTS IN THE ARRAY.

INPUT
 8
 10 2 3 4 5 9 7 8
 23

OUTPUT
  3  5 7 8   (3+5+7+8=23)


For Understanding These Question:

  https://www.geeksforgeeks.org/find-four-numbers-with-sum-equal-to-given-sum/



For Practicing :

 https://practice.geeksforgeeks.org/problems/four-elements/0



PROGRAMME:





#include<bits/stdc++.h>
using namespace std;



void throughnaivesolution(int a[],int n,int X)     //time complexity O(n^4)
{
for(int i=0;i<n-3;i++)
   {
    for(int j=i+1;j<n-2;j++)
    {
    for(int k=j+1;k<n-1;k++)
    {
    for(int l=k+1;l<n;l++)
    {
    if(a[i]+a[j]+a[k]+a[l]==X)
      cout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<a[l]<<"\n";
   
    }
    }
    }
   }
}


void throughsorting(int a[],int n,int X)   //O(n^3)
{
sort(a,a+n);
for(int i=0;i<n-3;i++)  //n
{
for(int j=i+1;j<n-2;j++)   //n
{
int k=j+1;
int l=n-1;
while(k<l)     //n
{
if(a[i]+a[j]+a[k]+a[l]==X)
  {
  cout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<a[l]<<"\n";
  k++;
  l--;
  }
  else if(a[i]+a[j]+a[k]+a[l]<X)
  {
  k++;
  }
  else
   l--;
}
}
}
}



main()
{
   int t;
   cin>>t;        // NUMBER OF TEST CASES
   while(t--)
   {
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++)
      cin>>a[i];
   
int X;
cin>>X;

throughnaivesolution(a,n,X);

cout<<"\n\n\n";

throughsorting(a,n,X);
 
     
   
     
     
     
   }
}



Website Recommend


As the placement session comes you want to practice coding challenges or do competitive programming so this are the website recommend for you guys to practice competitive programming .
These are the top website for practicing:

1)HackerEarth
     https://www.hackerearth.com/
2)HackerRank
     https://www.hackerrank.com/
3)CodeChef
          www.codechef.com/
4)GeeksForGeeks
        https://www.geeksforgeeks.org/

Kadane's Algorithm


It is the most asked question in Placements .So,if you are preparing for the placements then you should prepare this algorithm .

Kadane's Algorithm

 This algorithm is used to find the maximium subarray sum in an array . 
  These algorithm is asked many companies : Amazon,Ola,Hike,FactSet,Flipkart .


QUESTION
 
Given an array containing both negative and positive integers. Find the contiguous sub-array with maximum sum.
 
Print the maximum sum of the contiguous sub-array in a separate line for each test case.

INPUT
3
1 2 3

OUTPUT
6
Since maximum sum is(1+2+3) 6.


INPUT
4
-1 -2 -3 -4

OUTPUT
-1   

Since maximum subarray sum is -1

PROBLEM LINK:https://practice.geeksforgeeks.org/problems/kadanes-algorithm/0



Program:

#include<bits/stdc++.h>
using namespace std;

main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++)
{
   cin>>a[i];
}

int Max=a[0],sum=a[0];


for(int i=1;i<n;i++)
{


sum=max(a[i],sum+a[i]);


Max=max(Max,sum);
    }

cout<<Max<<"\n";



}


}




OUTPUT SCREEN