Pagini recente » Cod sursa (job #11570) | Cod sursa (job #2808944) | Cod sursa (job #2031252) | Cod sursa (job #2495491) | Cod sursa (job #2828896)
#include <fstream>
#include <cstdio>
#include <cctype>
#include <cstdlib>
#include <set>
using namespace std;
FILE *fin = fopen("dtcsu.in", "r");
ofstream fout("dtcsu.out");
const int bsize = 1<<16; //bsize = dimensiunea blocurilor in care sparg fisierul de intrare
char buff[bsize];
int poz = bsize;
inline char next() //citeste urmatorul caracter
{
if (poz == bsize) //daca am terminat de procesat blocul actual, mai citesc inca un bloc
{
fread(buff, 1, bsize, fin);
poz = 0;
}
return buff[poz++];
}
long long nr() //citeste un numar pozitiv
{
long long x = 0;
char c;
do
{
c = next();
} while (isdigit(c) == 0); //sar peste spatii
while (isdigit(c)) //citesc cifra cu cifra
{
x = x * 10 + c-48;
c = next();
}
return x;
}
set <long long> s;
int main()
{
int q, i, rasp;
long long n;
for (i = 1; i<=276997; i++)
{
n = nr();
s.insert (n);
}
q = nr();
rasp = 0;
for (i = 1; i<=q; i++)
{
n = nr();
if (s.find (n) != s.end())
rasp++;
}
fout << rasp;
return 0;
}