Pagini recente » Cod sursa (job #352098) | Cod sursa (job #2874387) | Cod sursa (job #2971545) | Cod sursa (job #2397263) | Cod sursa (job #3130404)
#include <iostream>
#include <stdio.h>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
#define NMAX 2002
#define HASHSIZE 1024
#define IDK 276997
vector <long long int> hsh[HASHSIZE];
long long int compute(long long int x) {
return x%HASHSIZE;
}
void add(int x) {
int i;
long long int cod;
cod = compute(x);
i=0;
while (i<hsh[cod].size() && hsh[cod][i]!=x) {
i++;
}
if (i==hsh[cod].size()) {
hsh[cod].push_back(x);
}
}
int search(long long int x) {
int i;
long long int cod;
cod = compute(x);
i=0;
while (i<hsh[cod].size() && hsh[cod][i]!=x) {
i++;
}
return i!=hsh[cod].size();
}
int main() {
FILE *fin, *fout;
fin = fopen("dctsu.in", "r");
fout = fopen("dctsu.out", "w");
int i, x, q, qq, nr;
char ch;
for (i=0; i<IDK; i++) {
ch = fgetc(fin);
while (ch<'0' || ch>'9') {
ch = fgetc(fin);
}
x = 0;
while (ch>='0' && ch<='9') {
x = x*10 + ch-'0';
ch = fgetc(fin);
}
add(x);
}
nr = 0;
fscanf(fin, "%d", &q);
for (qq=0; qq<q; qq++) {
fscanf(fin, "%d", &x);
if (search(x)) {
nr++;
}
}
fprintf(fout, "%d", nr);
fclose(fin);
fclose(fout);
return 0;
}