Pagini recente » Cod sursa (job #2947140) | Cod sursa (job #2758944) | Cod sursa (job #1951674) | Cod sursa (job #2883447) | Cod sursa (job #1937206)
#include <bits/stdc++.h>
using namespace std;
class InputReader
{
public:
InputReader() {}
InputReader(const char *file_name)
{
input_file = fopen(file_name, "r");
cursor = 0;
fread(buffer, SIZE, 1, input_file);
}
inline InputReader &operator >>(int &n)
{
while(buffer[cursor] < '0' || buffer[cursor] > '9')
{
advance();
}
n = 0;
while('0' <= buffer[cursor] && buffer[cursor] <= '9')
{
n = n * 10 + buffer[cursor] - '0';
advance();
}
return *this;
}
private:
FILE *input_file;
static const int SIZE = 1 << 17;
int cursor;
char buffer[SIZE];
inline void advance()
{
++ cursor;
if(cursor == SIZE)
{
cursor = 0;
fread(buffer, SIZE, 1, input_file);
}
}
};
InputReader f("cautbin.in");
ofstream g("cautbin.out");
int n,m,V[100000];
int main()
{
f>>n;
for(auto i=1; i<=n; i++) f>>V[i];
f>>m;
for(auto i=1; i<=m; i++)
{
int q,x;
f>>q>>x;
if (q==0)
if (binary_search(V+1,V+n+1,x)) g<<upper_bound(V+1,V+n+1,x)-V-1<<"\n";
else g<<"-1"<<"\n";
if (q==1) g<<upper_bound(V+1,V+n+1,x)-V-1<<"\n";
if (q==2) g<<lower_bound(V+1,V+n+1,x)-V<<"\n";
}
}