Cod sursa(job #2784006)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 15 octombrie 2021 15:46:02
Problema Dtcsu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <bits/stdc++.h>

using namespace std;

struct InParser {
  FILE *fin;
  char *buff;
  int sp;

  char read_ch() {
    ++sp;
    if (sp == 4096) {
      sp = 0;
      fread(buff, 1, 4096, fin);
    }
    return buff[sp];
  }

  InParser(const char *nume) {
    fin = fopen(nume, "r");
    buff = new char[4096]();
    sp = 4095;
  }

  InParser& operator >> (int64_t &n) {
    char c;
    n = 0;
    while (!isdigit(c = read_ch()) && c != '-');
    int64_t sgn = 1;
    if (c == '-') {
      n = 0;
      sgn = -1;
    } else {
      n = c - '0';
    }
    while (isdigit(c = read_ch())) {
      n = 10 * n + c - '0';
    }
    n *= sgn;
    return *this;
  }

  void close() {
    fclose(fin);
  }
};

InParser fin("dtcsu.in");
ofstream fout("dtcsu.out");

/* const int MASK = (1 << 22) - 1;
bitset<1 + MASK> filter; */

void test_case() {
  unordered_set<int64_t> S;
  for (int i = 1; i <= 276997; ++i) {
    int64_t x;
    fin >> x;
    S.emplace(x);
  }
  int64_t q;
  fin >> q;
  int ans = 0;
  for (int i = 1; i <= q; ++i) {
    int64_t x;
    fin >> x;
    ans += S.count(x);
  }
  fout << ans << '\n';
}

int main(){
  int t = 1;
  for (int tc = 1; tc <= t; ++tc) {
    test_case();
  }
  fin.close();
  fout.close();
  return 0;
}