Pagini recente » Monitorul de evaluare | Cod sursa (job #2535540) | Cod sursa (job #3042227) | Cod sursa (job #495944) | Cod sursa (job #1193969)
#include <iostream>
#include <fstream>
#define VAL 100001
using namespace std;
int x[VAL],n,m,i,j,q1,q2,p,pma=0,pmin=-1,pma2=0,p2,p3,k;
int tip0(int q2)
{
int s=1,d=n,mij;
while (s<=d){
mij=(s+d)/2;
if (q2==x[mij])
break;
if (q2<x[mij])
d=mij-1;
else
s=mij+1;
}
if (q2!=x[mij])
return -1;
while (x[mij]==q2)
mij++;
return mij-1;
}
int tip1(int q2)
{
int pma2=0;
for (j=1;j<=n;++j){
if (x[j]<=q2)
pma2=j;
}
return pma2;
}
int tip2(int q2)
{
int pmin=-1;
for (j=1;j<=n;++j)
if (x[j]>=q2){
pmin=j;
break;
}
return pmin;
}
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for (i=1;i<=n;++i)
f>>x[i];
f>>m;
for (i=1;i<=m;i++){
f>>q1>>q2;
if (q1==0)
g<<tip0(q2);
if (q1==1)
g<<tip1(q2);
if (q1==2)
g<<tip2(q2);
g<<"\n";
}
return 0;
}