Pagini recente » Cod sursa (job #260397) | Cod sursa (job #2647204) | Cod sursa (job #2309693) | Cod sursa (job #3212682) | Cod sursa (job #2614253)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
float N,M;
int val,v[100],problema;
int rez1(int s, int d, int val)
{
int mijl;
mijl=(s+d)/2;
if(val>=v[mijl])
{
s=mijl+1;
return rez1(s,d,val);
}
d=mijl-1;
mijl=(s+d)/2;
if(v[mijl] > val)
--mijl;
if(v[mijl]==val)
return mijl;
return -1;
}
int rez2(int s,int d,int val)
{
int mijl;
mijl=(s+d)/2;
if(val>=v[mijl])
{
s=mijl+1;
return rez1(s,d,val);
}
d=mijl;
mijl=(s+d)/2;
if(v[mijl] > val)
--mijl;
return mijl;
}
int rez3(int s, int d, int val)
{
int mijl;
mijl=(s+d)/2;
if(val>v[mijl])
{
s=mijl+1;
return rez1(s,d,val);
}
d=mijl;
mijl=(s+d)/2;
if(v[mijl] > val)
++mijl;
return mijl;
}
int main()
{
int i;
f>>N;
for(i=1; i<=N; i++)
f>>v[i];
f>>M;
for(i=1; i<=M; i++)
{
f>>problema>>val;
if(problema==1)
g<<rez1(1,N,val)<<endl;
else if(problema==2)
g<<rez2(1,N,val)<<endl;
else if(problema==3)
g<<rez3(1,N,val)<<endl;
}
return 0;
}