Mai intai trebuie sa te autentifici.
Cod sursa(job #1035897)
Utilizator | Data | 18 noiembrie 2013 21:10:24 | |
---|---|---|---|
Problema | Dtcsu | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.39 kb |
#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;
}