Pagini recente » Cod sursa (job #2313111) | Cod sursa (job #658414) | Monitorul de evaluare | Cod sursa (job #2444511) | Cod sursa (job #1428857)
#include <iostream>
#include <fstream>
#define MAXN 100001
using namespace std;
ifstream f1("colina.in");
ofstream g1("colina.out");
int n1,m1,v1[MAXN],poz;
class prob2
{
private:
int binsearch1(int x);
int binsearch2(int x);
public:
void rez2();
};
int prob2::binsearch1(int x)
{
int st=1,dr=poz-1,mij;
while(st<=dr)
{
mij=(st+dr)/2;
if(v1[mij]==x)return mij;
else if(v1[mij]<x)st=mij+1;
else dr=mij-1;
}
return 0;
}
int prob2::binsearch2(int x)
{
int st=poz,dr=n1;
while(st<=dr)
{
int mij=(st+dr)/2;
if(v1[mij]==x)return mij;
else if(v1[mij]>x)st=mij+1;
else dr=mij-1;
}
return 0;
}
void prob2::rez2()
{
f1>>n1>>m1;
int i;
for(i=1; i<=n1; i++)
{
f1>>v1[i];
if(v1[i]<v1[i-1]&&!poz)poz=i;
}
int x,b1=0,b2=0;
for(i=1; i<=m1; i++)
{
f1>>x;
b1=binsearch1(x);
b2=binsearch2(x);
if(b1||b2)
{
g1<<"DA ";
if(b1)g1<<b1<<' ';
if(b2)g1<<b2;
g1<<'\n';
}
else
g1<<"NU"<<'\n';
}
}
int main()
{
prob2 ob;
ob.rez2();
return 0;
}