Cod sursa(job #2828896)

Utilizator hurjui12AlexandruHurjui Alexandru-Mihai hurjui12Alexandru Data 8 ianuarie 2022 09:12:46
Problema Dtcsu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#include <cstdio>
#include <cctype>
#include <cstdlib>
#include <set>
using namespace std;

FILE *fin = fopen("dtcsu.in", "r");
ofstream fout("dtcsu.out");

const int bsize = 1<<16; //bsize = dimensiunea blocurilor in care sparg fisierul de intrare
char buff[bsize];
int poz = bsize;

inline char next() //citeste urmatorul caracter
{
    if (poz == bsize) //daca am terminat de procesat blocul actual, mai citesc inca un bloc
    {
        fread(buff, 1, bsize, fin);
        poz = 0;
    }
    return buff[poz++];
}

long long nr() //citeste un numar pozitiv
{
    long long x = 0;
    char c;
    do
    {
        c = next();
    } while (isdigit(c) == 0); //sar peste spatii
    while (isdigit(c)) //citesc cifra cu cifra
    {
        x = x * 10 + c-48;
        c = next();
    }
    return x;
}

set <long long> s;

int main()
{
    int q, i, rasp;
    long long n;

    for (i = 1; i<=276997; i++)
    {
        n = nr();
        s.insert (n);
    }

    q = nr();
    rasp = 0;
    for (i = 1; i<=q; i++)
    {
        n = nr();
        if (s.find (n) != s.end())
            rasp++;
    }
    fout << rasp;
    return 0;
}