Skip to content

Commit

Permalink
greedy
Browse files Browse the repository at this point in the history
  • Loading branch information
Ashish-kumar7 committed Feb 27, 2020
1 parent e9e5277 commit 6f18a02
Showing 1 changed file with 72 additions and 0 deletions.
72 changes: 72 additions & 0 deletions Greedy Algorithm/New Text Document.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#include <iostream>
#include<bits/stdc++.h>
using namespace std;

int making(int pages[],int n,int capacity)
{
unordered_set<int>s;
unordered_map<int,int>map1;
int pagefault=0;

for(int i=0;i<n;i++)
{
if(s.size()<capacity)
{
if(s.find(pages[i])==s.end())
{
s.insert(pages[i]);
pagefault++;
}
map1[pages[i]]=i;
}

else
{
if(s.find(pages[i])==s.end())
{
int x=INT_MAX;
int val;

for(auto it=s.begin();it!=s.end();it++)
{
if(map1[*it]<x)
{
x=map1[*it];
val=*it;
}
}
s.erase(val);
s.insert(pages[i]);
pagefault++;

}
map1[pages[i]]=i;
}
}
return pagefault;
}



int main() {
//code
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int A[n];
for(int i=0;i<n;i++)
{
cin>>A[i];
}
int jj;
cin>>jj;
cout<< making(A,n,jj);
cout<<endl;
}


return 0;
}

0 comments on commit 6f18a02

Please sign in to comment.