Greedy
Greedy
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int arr[n];
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
sort(arr,arr+n);
cout<<endl;
for(int i=0;i<n;i++)
{
cout<<arr[i]<<" ";
}
int ans=1;
for(int i=0;i<n;i++)
{
if(arr[i]>arr[0] && arr[i]<=arr[0]+4)
{
ans=ans+1;
}
}
cout<<"\nANS : "<<ans;
}
//-----------------
//jobb
#include <bits/stdc++.h>
using namespace std;
struct Job{
int id;
int dead;
int profit;
};
class Solution{
public:
bool static comparison(Job a,Job b){
return a.profit>b.profit;
}
pair <int,int> JobScheduling(Job arr[], int n){
sort(arr,arr+n,comparison);
int maxi=arr[0].dead;
for(int i=1;i<n;i++){
maxi = max(maxi,arr[i].dead);
}
int slot[maxi+1];
for(int i=0;i<=maxi;i++){
slot[i]=-1;
}
int countJobs=0,profitJobs=0;
for(int i=0;i<n;i++){
for(int j=arr[i].dead;j>0;j--){
if(slot[j]==-1){
slot[j]=i;
countJobs++;
profitJobs+=arr[i].profit;
break;
}
}
}
return make_pair(countJobs,profitJobs);
}
};
int main(){
int n=4;
Job arr[n] = {{1,4,20},{2,1,10},{3,2,40},{4,2,30}};
Solution ob;
pair <int, int> ans = ob.JobScheduling(arr,n);
cout<<ans.first<<" "<<ans.second;
}
//---------------------------------------------
//penalty
#include <bits/stdc++.h>
using namespace std;
struct Job{
int id;
int dead;
int penalty;
};
class Solution{
public:
bool static comparison(Job a,Job b){
return a.penalty >b.penalty ;
}
pair <int,int> JobScheduling(Job arr[], int n){
sort(arr,arr+n,comparison);
int maxi=arr[0].dead;
for(int i=1;i<n;i++){
maxi = max(maxi,arr[i].dead);
}
int slot[maxi+1];
for(int i=0;i<=maxi;i++){
slot[i]=-1;
}
int penaltySum=0;
for(int i=0;i<n;i++){
penaltySum+=arr[i].penalty;
}
int countJobs=0,profitJobs=0;
for(int i=0;i<n;i++){
for(int j=arr[i].dead;j>0;j--){
if(slot[j]==-1){
slot[j]=i;
countJobs++;
penaltySum-=arr[i].penalty;
break;
}
}
}
return make_pair(countJobs,penaltySum);
}
};
int main(){
int n=7;
Job arr[n] = {{1,14,80},{2,12,70},{3,14,60},{4,13,50},{5,11,40},{6,14,30},
{7,16,20}};
Solution ob;
pair <int, int> ans = ob.JobScheduling(arr,n);
cout<<ans.first<<" "<<ans.second;
//--------------------------
//knapscak
#include <iostream>
#include <algorithm>
int main() {
int m;
cin >> m;
int values[m];
int weights[m];
cout << "Enter value and weight of each item:" << endl;
for (int i = 0; i < m; i++) {
cin >> values[i];
cin >> weights[i];
}
double valueWeightRatio[m];
if (itemIndex == -1) {
cerr << "Error: Item not found." << endl;
return 1;
}
cout << "Maximum value in the knapsack: " << totalValue << endl;
return 0;
}
//-------------------------------
//entertainment
#include <iostream>
#include <vector>
#include <algorithm>
int kiosks = 0;
int i = 0;
return kiosks;
}
int main() {
vector<int> entertainmentZones = {30, 50, 35, 26, 72, 65, 54, 90, 50, 60, 120,
100, 80};
int radius = 30;
cout << "Minimum number of kiosks required: " << kiosks << endl;
return 0;
}
//-------------------------------------------
//interval
#include <bits/stdc++.h>
using namespace std;
}
int main(){
vector<pair<int ,int>> intervals={ {1,3},{2,4},{3,5},{4,6},{5,7}};
vector <pair<int,int>> selectedIntervals = intervalScheduling(intervals);
for (const pair<int, int>& interval : selectedIntervals) {
cout << "[" << interval.first << ", " << interval.second << "] ";
}
cout << endl;
int m=intervals.size();
int n=selectedIntervals.size();
cout<<m-n;
return 0;
}
//-----------------------------
//prims
#include <bits/stdc++.h>
using namespace std;
return min_index;
}
// Driver's code
int main()
{
int graph[V][V] = { { 0, 2, 0, 6, 0 },
{ 2, 0, 3, 8, 5 },
{ 0, 3, 0, 0, 7 },
{ 6, 8, 0, 0, 9 },
{ 0, 5, 7, 9, 0 } };
return 0;
}
// ----------------------------
//kruskal
#include <bits/stdc++.h>
using namespace std;
// Find function
int find(int i)
{
if (parent[i] == -1)
return i;
// Union function
void unite(int x, int y)
{
int s1 = find(x);
int s2 = find(y);
if (s1 != s2) {
if (rank[s1] < rank[s2]) {
parent[s1] = s2;
}
else if (rank[s1] > rank[s2]) {
parent[s2] = s1;
}
else {
parent[s2] = s1;
rank[s1] += 1;
}
}
}
};
class Graph {
vector<vector<int> > edgelist;
int V;
public:
Graph(int V) { this->V = V; }
void kruskals_mst()
{
// Sort all edges
sort(edgelist.begin(), edgelist.end());
// Initialize the DSU
DSU s(V);
int ans = 0;
cout << "Following are the edges in the "
"constructed MST"
<< endl;
for (auto edge : edgelist) {
int w = edge[0];
int x = edge[1];
int y = edge[2];
// Driver code
int main()
{
Graph g(4);
g.addEdge(0, 1, 10);
g.addEdge(1, 3, 15);
g.addEdge(2, 3, 4);
g.addEdge(2, 0, 6);
g.addEdge(0, 3, 5);
// Function call
g.kruskals_mst();
return 0;
}
//