Pagini recente » Cod sursa (job #2217687) | Cod sursa (job #1088219) | Cod sursa (job #3217722) | Cod sursa (job #141908) | Cod sursa (job #695398)
Cod sursa(job #695398)
#include<fstream>
#include<list>
#define nmax 100001
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,m;
list<short> L[nmax];
int main()
{f>>n;
int x; int tip;
for(int i=1;i<=n;i++) {f>>x;
L[x].push_back(i);
}
f>>m;
int aux=0;
int t=0;
for(int i=1;i<=m;i++)
{f>>tip>>x;
if(tip==0) {t=L[x].size();
if(t==0) g<<"-1"<<"\n";
else {aux=L[x].back(); g<<aux<<"\n";}
}
if(tip==1) {t=L[x].size();
if(t>=2) {aux=L[x].back(); g<<aux<<"\n";}
else {x=x-1; t=L[x].size();
if(t!=0) {aux=L[x].back(); g<<aux<<"\n";}
else {while(t==0) {x--; t=L[x].size();}
aux=L[x].front(); g<<aux<<"\n";
}
}
}
if(tip==2) {t=L[x].size();
if(t>=2) {aux=L[x].front(); g<<aux<<"\n";}
else {x=x+1; t=L[x].size();
if(t!=0) {aux=L[x].front(); g<<aux<<"\n";}
else {while(t==0) {x++; t=L[x].size();}
aux=L[x].back(); g<<aux<<"\n";
}
}
}
}
return 0;
}