Pagini recente » Autentificare | Cod sursa (job #1640116) | Cod sursa (job #2266831) | Cod sursa (job #2553513) | Cod sursa (job #1035897)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define MOD 1000007
typedef long long ll;
typedef vector<long long>::iterator iter;
// <parsing>
FILE *fin = fopen("dtcsu.in", "r");
unsigned const maxb = 8192;
char buf[maxb];
int ptr = maxb;
inline ll getLl() {
while (buf[ptr] < '0' || '9' < buf[ptr]) {
if (++ptr >= maxb) {
fread(buf, maxb, 1, fin);
ptr = 0;
}
}
ll nr = 0;
while ('0' <= buf[ptr] && buf[ptr] <= '9') {
nr = nr * 10 + buf[ptr] - '0';
if (++ptr >= maxb) {
fread(buf, maxb, 1, fin);
ptr = 0;
}
}
return nr;
}
// </parsing>
ofstream g("dtcsu.out");
vector<ll> Hash[MOD];
ll q;
void insertHash(ll nr) {
int mod = nr % MOD;
Hash[mod].push_back(nr);
}
bool findHash(ll nr) {
int mod = nr % MOD;
for (iter it = Hash[mod].begin(); it != Hash[mod].end(); it++) {
if (*it == nr) {
return true;
}
}
return false;
}
int main() {
for (int i = 0; i < 276997; i++) {
ll nr = getLl();
insertHash(nr);
}
ll sol = 0;
q = getLl();
for (ll i = 1; i <= q; i++) {
ll nr = getLl();
if (findHash(nr) == true) {
sol++;
}
}
g << sol;
g.close();
return 0;
}