Pagini recente » Cod sursa (job #1540747) | Cod sursa (job #1971371) | Cod sursa (job #2336704) | Cod sursa (job #1967943) | Cod sursa (job #1914625)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int i,j,v[100001],inst,h,n,m,x;
ifstream f("bfs.in");
ofstream g("bfs.out");
void set1(int x)
{
h=0;
int b,c,a,f;
b=1;
c=n;
while(b<=c)
{
a=(b+c)/2;
if(x==v[a])
{
b=a+1;
h=a;
}
else
if(x<v[a])
{
c=a-1;
}
else
b=a+1;
}
if(h==0)
g<<"-1"<<"\n";
else
g<<h<<"\n";
}
void set2(int x)
{
int b,c,a,f,i;
b=1;
c=n;
while(b<=c)
{
a=(b+c)/2;
if(x==v[a])
{
b=a+1;
h=a;
}
else
if(x<v[a])
{
c=a-1;
}
else
b=a+1;
}
if(h==0)
{i=n;
while(v[i]>x)
i--;
g<<i<<"\n";
}
else
g<<h<<"\n";
}
void set3 (int x)
{
h=0;
int b,c,a,f;
b=1;
c=n;
while(b<=c)
{
a=(b+c)/2;
if(x==v[a])
{
c=a-1;
h=a;
}
else
if(x<v[a])
{
c=a-1;
}
else
b=a+1;
}
if(h==0)
{
i=1;
while(v[i]<=x)
i++;
g<<i<<"\n";
}
else
g<<h<<"\n";
}
int main()
{
f >> n;
for(i=1;i<=n;i++)
f>>v[i];
f>>m;
sort(v+1,v+1+n);
for(i=1;i<=m;i++)
{
f>>inst>>x;
if(inst==0)
set1(x);
else
if(inst==1)
set2(x);
else
set3(x);
}
return 0;
}