Experiment No - 3: AIM: Calculate The Difference Between Maximum Sum and Minimum Sum of N-M Elements of
Experiment No - 3: AIM: Calculate The Difference Between Maximum Sum and Minimum Sum of N-M Elements of
AIM: Calculate the difference between maximum sum and minimum sum of N-M elements of
the given array.
SOURCE CODE:
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t,M,N,A[1000];
cin>>t;
for(int i=0;i<t;i++)
{
cin>>N;
cin>>M;
for(int j=0;j<N;j++)
cin>>A[j];
sort(A,A+N);
int sum1 = 0,sum2 = 0;
for(int k=0,l=M;k<N-M-1,l<N;k++,l++)
{
sum1 = sum1+A[k];
sum2 = sum2+A[l];
}
cout<<abs(sum1-sum2)<<endl;
}
return 0;
}
OUTPUT:
EXPERIMENT NO -4
Output:
EXPERIMENT NO- 5
Aim: Perform the snakes and ladders: The quickest way up.
Source code:
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
vector<int> a(101);
for(int i=1;i<101;i++)
a[i]=i;
int l,s;
cin>>l;
for(int i=0;i<l;i++)
{
int x,y;
cin>>x>>y;
a[x]=y;
}
cin>>s;
for(int i=0;i<s;i++){
int x,y;
cin>>x>>y;
a[x]=y;
}
vector<int> dist(101,-1);
queue<int> q;
dist[1]=0;
q.push(1);
int ans=-1;
while(!q.empty()&&ans==-1){
int u=q.front();
q.pop();
for(int i=u+1;i<u+7&&i<101;i++)
{
if(dist[a[i]]==-1){
dist[a[i]]=dist[u]+1;
if(a[i]==100){
ans=dist[a[i]];
break;
}
q.push(a[i]);
}
}
}
cout<<ans<<endl;
}
}
Output:
EXPERIMENT NO- 6
Source code
#include <bits/stdc++.h>
vector<int> c;
vector<vector<int>> children;
vector<int> dp;
int answer;
void dfs(int v)
{
vector<int> cdp;
for (int u: children[v])
{
dfs(u);
dp[v] = max(dp[v], dp[u]);
cdp.push_back(dp[u]);
}
if (c[v] == 0)
{
dp[v] = 0;
return;
}
dp[v]++;
answer = max(answer, dp[v]);
sort(cdp.rbegin(), cdp.rend());
if (cdp.size() > 1)
answer = max(answer, cdp[0] + cdp[1] + 1);
}
int main()
{
int n;
scanf("%d", &n);
c.resize(n);
children.resize(n);
dp.resize(n);
children[p].push_back(i);
}
dfs(0);
printf("%d\n", answer);
return 0;
}