Skip to content

Commit 0497309

Browse files
authored
Add files via upload
1 parent 67ccf67 commit 0497309

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed

greedy/job_sequencing.normal.cpp

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/*
2+
written by pankaj kumar.
3+
*/
4+
#include<iostream>
5+
#include<vector>
6+
#include<cmath>
7+
#include<set>
8+
#include<algorithm>
9+
#include<string.h>
10+
#define pan cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(0);
11+
#define mod 1000000007;
12+
using namespace std;
13+
typedef long long ll ;
14+
#define line cout<<endl;
15+
/* ascii value
16+
A=65,Z=90,a=97,z=122
17+
*/
18+
19+
bool com(const pair<char,pair<int,int>>&v1,const pair<char,pair<int,int>>&v2)
20+
{
21+
return (v1.second.second>v2.second.second);
22+
}
23+
24+
int main()
25+
{
26+
pan;
27+
vector<pair<char,pair<int,int>>>vec;
28+
vec.push_back(make_pair('a',make_pair(2,100)));
29+
vec.push_back(make_pair('b',make_pair(1,19)));
30+
vec.push_back(make_pair('c',make_pair(2,27)));
31+
vec.push_back(make_pair('d',make_pair(1,25)));
32+
vec.push_back(make_pair('e',make_pair(3,15)));
33+
sort(vec.begin(),vec.end(),com);
34+
int size=vec.size();
35+
bool flag[size]={false};
36+
vector<int>pak;
37+
for(int i=0;i<size;i++)
38+
{
39+
for(int j=min(size,vec[i].second.first)-1;j>=0;j--)
40+
{
41+
if(flag[j]==false)
42+
{
43+
flag[j]=true;
44+
pak.push_back(i);
45+
break;
46+
}
47+
}
48+
}
49+
50+
for(int i=0;i<size;i++)
51+
{
52+
if(flag[i])
53+
cout<<vec[pak[i]].first<<" ";
54+
}
55+
line;
56+
}

greedy/police_thief.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include<iostream>
2+
#include<vector>
3+
using namespace std;
4+
5+
int main()
6+
{
7+
char arr1[]={'P','T','T','P','T'};
8+
int n=sizeof(arr1)/sizeof(arr1[0]);
9+
int k=2;
10+
// police catch thieve
11+
vector<int>p;
12+
vector<int>t;
13+
for(int i=0;i<n;i++)
14+
{
15+
if(arr1[i]=='P')
16+
p.push_back(i);
17+
else
18+
t.push_back(i);
19+
}
20+
int i=0,j=0,count=0;
21+
while(i<p.size() && j<t.size())
22+
{
23+
if(abs(p[i]-t[j])<=k)
24+
{
25+
count++;
26+
i++;
27+
j++;
28+
}
29+
else if(p[i]>t[j])
30+
j++;
31+
else
32+
i++;
33+
}
34+
cout<<count<<endl;
35+
}

0 commit comments

Comments
 (0)