Cod sursa(job #2375213)

Utilizator Codrut112Codrut Copas Codrut112 Data 7 martie 2019 23:09:19
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,i,mn1[100000000],v[100001],j,ok,m,p,x,w[100000000],mx,mn;
int main()
{ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
 for(i=1;i<=n;i++) {f>>v[i];if(w[v[i]]!=0 and mn1[v[i]]==0 ) mn1[v[i]]=w[v[i]];
   w[v[i]]=i;}
 for(i=1;i<=n;i++)
 for(j=i;j<=n;j++)
 if(v[i]>v[j]) swap(v[i],v[j]);
 f>>m;
 for(i=1;i<=m;i++){mx=0;mn=999999;
 f>>p>>x;
  if(p==0){
  for(j=m;v[j]>=x;j--)  mx=max(mx,w[v[j]]);
  if(mx!=0)g<<mx<<endl;else g<<-1<<endl;
  } if(p==1){
  for(j=1;v[j]<=x;j++) mx=max(mx,w[v[j]]);
  g<<mx<<endl;
  }if(p==2){for(j=m;v[j]>=x;j--) {if(mn1[v[j]]==0) mn=min(mn,w[v[j]]);else mn=min(mn,mn1[v[i]]);}
  g<<mn<<endl;
}
 }


}