Cod sursa(job #1582201)
Utilizator | Data | 27 ianuarie 2016 18:48:17 | |
---|---|---|---|
Problema | Cautare binara | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 1.28 kb |
#include <iostream>
#include <fstream>
using namespace std;
int v[100000],m;
int main()
{ int n,i,x,c,j,ok;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
f>>m;
for(j=1;j<=m;j++){
f>>c;f>>x;
if (c==0){
ok=0;
i=n;
while (i>=1 &&ok==0){
if(v[i]==x)
ok=1;
else
i--;}
}
if (c==1){
ok=0;i=n;
while (i>=1 &&ok==0){
if(v[i]<=x)
ok=1;
else
i--;}
}
if(c==2){
ok=0;i=1;
while (i<=n &&ok==0){
if(v[i]>=x)
ok=1;
else
i++;}
}
if(c==0)
if (ok==0)
g<<"-1"<<"\n";
else
g<<i<<"\n";
else g<<i<<"\n";
}
f.close();
g.close();
return 0;
}