Pagini recente » Cod sursa (job #920629) | Cod sursa (job #2505925) | Cod sursa (job #1927888) | Cod sursa (job #825434) | Cod sursa (job #1601227)
/*Se da un sir de numere ordonat crescator cu N elemente,
si se cere sa se raspunda la M intrebari de tipul:
0 x - cea mai mare pozitie pe care se afla un element cu valoarea x
sau -1 daca aceasta valoare nu se gaseste in sir
1 x - cea mai mare pozitie pe care se afla un element cu valoarea mai mica
sau egala cu x in sir. Se garanteaza ca cel mai mic numar al sirului este mai mic sau egal decat x
2 x - cea mai mica pozitie pe care se afla un element cu valoarea mai mare
sau egala cu x in sir. Se garanteaza ca cel mai mare numar din sir este mai mare sau egal decat x
cautbin.in cautbin.out
5 4
1 3 3 3 5 4
3 2
0 3
1 3
2 3*/
#include<iostream>
#include<fstream>
using namespace std;
int zero(int v[100002], int n, int k)
{
int i;
for(i=n;i>=1;i--)
{
if(v[i]==k)
{
return i;
}
}
return -1;
}
int unu(int v[100002], int n, int k)
{
int i;
for(i=n;i>=1;i--)
{
if(v[i]<=k)
{
return i;
}
}
return 0;
}
int doi(int v[100002], int n, int k)
{
int i;
for(i=1;i<=n;i++)
{
if(v[i]>=k)
{
return i;
}
}
return 0;
}
int main()
{
int v[100002],i,j,N,M,x,t;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin>>N;
for(i=1;i<=N;i++)
{
fin>>j;
v[i]=j;
}
fin>>M;
for(i=1;i<=M;i++)
{
fin>>t>>x;
if(t==0)
{
fout<<zero(v,N,x)<<'\n';
}
if(t==1)
{
fout<<unu(v,N,x)<<'\n';
}
if(t==2)
{
fout<<doi(v,N,x)<<'\n';
}
}
fin.close();
fout.close();
return 0;
}