Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #1031574)
#include<fstream>
using namespace std;
ifstream f("dtcsu.in");
ofstream g("dtcsu.out");
long long v[276998];
int caut(int li,int ls,long long y)
{
if(li>ls)
return 0;
int mj=li+(ls-li)/2;
if(v[mj]==y)
return 1;
if(v[mj]<y)
caut(mj+1,ls,y);
else
caut(li,mj-1,y);
}
void quicksort(long long v[],int l,int r)
{
int i=l, j=r;
long long aux;
long long pv=v[(l+r)/2];
while (i<=j)
{
while (v[i]<pv)
i++;
while (v[j]>pv)
j--;
if (i<=j)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
i++;
j--;
}
}
if (l<j)
quicksort(v,l,j);
if (i<r)
quicksort(v,i,r);
return;
}
int main()
{
long long x;
for(int i=1;i<=276997;i++)
{
f>>v[i];
}
quicksort(v,1,276997);
int k,count=0;
f>>k;
for(int i=1;i<=k;i++)
{
f>>x;
if(caut(1,276997,x))
count++;
}
g<<count;
f.close();
g.close();
return 0;
}