Pagini recente » Cod sursa (job #1378030) | Cod sursa (job #9699) | Cod sursa (job #1044870) | Cod sursa (job #38532) | Cod sursa (job #662052)
Cod sursa(job #662052)
#include <iostream>
#include <fstream>
using namespace std;
int n, m, v[100005], i;
int test, numar;
int start, stop, mij;
int caut(int k, int t) {
start=1; stop=n;
while(start<stop) {
mij=start + (stop-start)/2;
if(k<v[mij]) { stop=mij-1; }
if(k>=v[mij]) { start=mij+1; }
}
cout<<start<<" "<<stop<<"\n";
mij=(start+stop)/2;
if(v[mij]>k) { mij--; }
if(t==0) {
if(v[mij]==k) { return mij; }
else { return -1; }
}
if(t==1) {
// while(v[mij]==k) { mij--; }
return mij;
}
if(t==2) {
if(v[mij]==k) {
while(v[mij]==k) { mij--; }
mij++;
}
return mij;
}
}
int main() {
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for(i=1; i<=n; i++) {
f>>v[i];
}
f>>m;
for(i=1; i<=m; i++) {
f>>test>>numar;
g<<caut(numar,test);
g<<"\n";
}
f.close();
g.close();
return 0;
}