Pagini recente » Cod sursa (job #758996) | Cod sursa (job #1177551) | Cod sursa (job #2738975) | Cod sursa (job #2202099) | Cod sursa (job #1030058)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin ("dtcsu.in");
ofstream fout ("dtcsu.out");
const int MAXN = 276997;
int N, poz, Q, sol;
unsigned long long v[MAXN+5];
char s[70];
inline unsigned long long numar (int N)
{
unsigned long long nr = 0, put = 1;
for (int i=1; i<N; ++i)
put *= 10;
for (int i=0; i<N; ++i, put/=10)
nr += put*(s[i]-'0');
return nr;
}
inline int caut_bin (int val)
{
int i, step;
for (step=1; step<=N; step<<=1);
for (i=1; step; step>>=1)
if (i+step <= N && val >= v[i+step])
i+= step;
if (v[i] == val)
return true;
return false;
}
int main ()
{
for (int i=0; i<MAXN; ++i)
{
fin.getline (s, 70);
N = strlen (s);
v[++poz] = numar(N);
}
N = poz;
fin >> Q;
for (int i=0; i<Q; ++i)
{
int aux;
fin >> aux;
if ( caut_bin (aux) )
++sol;
}
fout << sol;
fin.close ();
fout.close ();
return 0;
}