Optimally finding page faults

Source Code:

#include <iostream>
using namespace std;
int main() {
int n;
  cin>>n;
  int b[n];
  int k;
  cin>>k;
  int a[k];
  for(int i=0;i<k;i++)
    cin>>a[i];
 for(int i=0;i<n;i++)
   b[i]=-1;
  int v=0;
  for(int i=0;i<k;i++)
  {int y=0;
    for(int j=0;j<n;j++)
    {
      if(b[j]==a[i])
        y++;
    }
   if(y>0){
     v++;
   }
   else if(y==0 && i<n)
     b[i]=a[i];
   else if(y==0)
   {int ck[n],t=0;
     for(int l=0;l<n;l++)
     { t=0;
       for(int z=i+1;z<k;z++)
       {
         if(b[l]==a[z])
         {t++;
          ck[l]=z;
          break;
         }
       }
      if(t==0)
      {
        ck[l]=k;
        b[l]=a[i];
        break;
      }
     }
    if(t!=0)
    {
    int mx=ck[0],pt=0;
    for(int z=1;z<n;z++)
    {
      if(ck[z]>mx)
      {
        mx=ck[z];
        pt=z;
      }
    }
 
     b[pt]=a[i];
    }
   
   }
  for(int z=0;z<n;z++)
    cout<<b[z]<<"\t";
  cout<<endl;
 
  }
  cout<<"Total Page Faults = "<<k-v;

  return 0;
}

Comments