Pagini recente » Cod sursa (job #3292662) | Cod sursa (job #2537601) | Cod sursa (job #2060395) | Cod sursa (job #2030902) | Cod sursa (job #813341)
Cod sursa(job #813341)
#include<iostream>
#include<cassert>
#include<vector>
#include<algorithm>
#include<math.h>
#include<cstdio>
#include<fstream>
int N,ex,v[100000];
using namespace std;
void read()
{
assert(freopen("cautbin.in","r",stdin));
cin>>N;
for(int i=1;i<=N;++i)
cin>>v[i];
cin>>ex;
}
void solve()
{
int x,y;
FILE *g = fopen("cautbin.out","w");
vector<int> A(v+1,v+N+1);
vector<int>::iterator low,up;
for(int i = 1 ; i <= ex ; ++i)
{
cin>>x>>y;
if(x==0)
{
if( upper_bound(A.begin(),A.end(),y) != lower_bound(A.begin(),A.end(),y) )
fprintf(g,"%d\n",int(upper_bound(A.begin(),A.end(),y)-A.begin()));
else
fprintf(g,"-1\n");
}
if(x==1)
{
if(upper_bound(A.begin(),A.end(),y)!=lower_bound(A.begin(),A.end(),y))
fprintf(g,"%d\n",int(upper_bound(A.begin(),A.end(),y)-A.begin()));
else
fprintf(g,"-1\n");
}
if(x==2)
{
if(upper_bound(A.begin(),A.end(),y)!=lower_bound(A.begin(),A.end(),y))
fprintf(g,"%d\n",int(lower_bound(A.begin(),A.end(),y)-A.begin())+1);
else
fprintf(g,"-1\n");
}
}
fclose(g);
}
int main()
{
read();
solve();
return 0;
}