Day8: (Greedy)
N meeting in one room Learned on Jul 27th
void maxMeeting (int s[], int f[], int n){
struct meeting meet[n];
for (int i=0;i<n;i++) {
meet[i].start = s[i];
meet[i].end = f[i];
meet[i].pos = i+1;
}
sort(meet, meet+n, comparator);
vector <int> v;
v.push_back(meet[0].pos);
int time_limit=meet[0].end;
for (int i=1;i<n;i++){
if (meet[i].start >= time_limit) {
v.push_back(meet[i].pos);
time_limit = meet[i].end;
}
}
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
}
Find Minimum number of Coins Solved on: 28th July 2020
int main() {
int num;
cin >> num;
cout << num << ": ";
int deno[] = { 1, 2, 5, 10, 20, 50, 100, 500, 1000 };
int n=9;
int c=0;
vector<int> ans;
for (int i = n - 1; i >= 0; i--) {
while (num >= deno[i]) {
num -= deno[i];
ans.push_back(deno[i]);
c++;
}
}
cout << c << "\n";
for (int i = 0; i < ans.size(); i++)
cout << ans[i] << " ";
return 0;
}
Convert to Roman No Solved on: Aug 5th 2020
string convertToRoman(int num) {
string romans[] = {"I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"};
int nums[] = {1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000};
string result = "";
int mynum = num;
for (int i=12;i>=0;i--) {
while (mynum >= nums[i]) {
result = result + romans[i];
mynum = mynum - nums[i];
}
}
return result;
}
Job sequencing Problem Temporarily Solved on: Aug 21st 2020
#include<iostream>
#include <bits/stdc++.h>
using namespace std;
struct job {
int id;
int dead;
int profit;
};
bool comparator (struct job a, struct job b) {
if (a.profit!=b.profit){
return a.profit>b.profit;
}
return a.id < b.id;
}
int main() {
int t;
cin >>t;
while (t--) {
int n;
cin >>n;
struct job j[n];
for (int i=0;i<n;i++) {
cin >> j[i].id;
cin >> j[i].dead;
cin >> j[i].profit;
}
sort(j, j+n, comparator);
bool arr[n];
int result[n];
for (int i=0;i<n;i++) {
arr[i]=false;
}
int p=0,c=0;
for (int i=0;i<n;i++) {
for (int k=min(n-1, j[i].dead-1); k>=0; k--){
if (arr[k] == false) {
c=c+1;
arr[k] = true;
cout << j[k].profit << "\n";
p=p+j[k].profit;
break;
}
}
}
cout << c << " " << p << " ";
cout << "\n";
}
return 0;
}
Last updated
Was this helpful?