Pagini recente » Cod sursa (job #3180820) | Cod sursa (job #2206799) | Cod sursa (job #813244) | Cod sursa (job #1997143) | Cod sursa (job #1038677)
#include <cstdio>
#include <bitset>
#define MOD1 (1<<19)
#define MOD2 666013
#define MOD3 666019
#define MOD4 123457
using namespace std;
bitset <MOD1> H1;
bitset <MOD2> H2;
bitset <MOD3> H3;
bitset <MOD4> H4;
inline bool Good(const long long x)
{
if (!H1[x&MOD1] || !H2[x%MOD2] || !H3[x%MOD3] || !H4[x%MOD4])
return false;
return true;
}
int main()
{
char ch[100];
FILE *f = fopen("dtcsu.in", "r");
for (int i = 1; i<=276997; ++i)
{
fgets(ch, 100, f);
long long x = 0LL;
int ind;
for (ind=0; ch[ind]; ++ind)
x = x*10 + ch[ind] - '0';
H1[x&MOD1] = true;
H2[x%MOD2] = true;
H3[x%MOD3] = true;
H4[x%MOD4] = true;
}
fgets(ch, 100, f);
int Q = 0;
int i;
for (i=0; ch[i]; ++i)
Q = Q*10 + ch[i] - '0';
int answer = 0;
while (Q--)
{
fgets(ch, 100, f);
long long x = 0LL;
int i;
for (i=0; ch[i]; ++i)
x = x*10 + ch[i] - '0';
if (Good(x))
++answer;
}
fclose(f);
FILE *g = fopen("dtcsu.out", "w");
fprintf(g, "%d\n", answer);
fclose(g);
return 0;
}