Pagini recente » Cod sursa (job #786613) | Cod sursa (job #932307) | Cod sursa (job #1322029) | Rating Breje Mihai (BrejeM) | Cod sursa (job #1478757)
#include <stdio.h>
#define NR 276997
#define MOD 600011
#define HASH1 7654337
#define HASH2 8765437
#define HASH3 9876553
#define HASH4 10864537
#define HASH5 65876351
char v[MOD];
inline void set(int poz){
v[poz / 8] += (1 << (poz % 8));
}
inline char este(int poz){
return (v[poz / 8] >> (poz % 8)) & 1;
}
int main(){
FILE *in = fopen("dtcsu.in", "r");
int i;
long long x;
for(i = 0; i < NR; i++){
fscanf(in, "%lld", &x);
x = x % (8 * MOD) * 6000023 % (8 * MOD);
set(x * HASH1 % (8 * MOD));
set(x * HASH2 % (8 * MOD));
set(x * HASH3 % (8 * MOD));
set(x * HASH4 % (8 * MOD));
set(x * HASH5 % (8 * MOD));
}
int q, rez = 0;
fscanf(in, "%d", &q);
for(i = 0; i < q; i++){
fscanf(in, "%lld", &x);
x = x % (8 * MOD) * 6000023 % (8 * MOD);
if(este(x * HASH1 % (8 * MOD)) && este(x * HASH2 % (8 * MOD)) &&
este(x * HASH3 % (8 * MOD)) && este(x * HASH4 % (8 * MOD)) && este(x * HASH5 % (8 * MOD)))
rez++;
}
FILE *out = fopen("dtcsu.out", "w");
fprintf(out, "%d", rez);
fclose(out);
return 0;
}