Pagini recente » Cod sursa (job #1115813) | Cod sursa (job #1622420) | Cod sursa (job #2134298) | Cod sursa (job #510571) | Cod sursa (job #2145028)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
const int Nmax = 100005;
unordered_map < int , int > MN , MX;
set < int > s;
set < int > :: iterator it;
int n , Q;
int main()
{
int x , op;
fin >> n;
for(int i = 1 ; i <= n ; i++)
{
fin >> x;
if(MN[x] == 0)
MN[x] = i;
else MN[x] = min(MN[x] , i);
if(MX[x] == 0)
MX[x] = i;
else MX[x] = max(MX[x] , i);
s . insert(x);
}
fin >> Q;
while(Q -- )
{
fin >> op >> x;
if(op == 0)
{
if(MX[x] == 0)
fout << "-1\n";
else fout << MX[x] << "\n";
}
else if(op == 1)
{
it = s . upper_bound(x);
it--;
fout << MX[* it] << "\n";
}
else
{
it = s . lower_bound(x);
fout << MN[* it] << "\n";
}
}
fin.close();
fout.close();
return 0;
}