Cod sursa(job #1036354)

Utilizator RyuzakiL Lawliet Ryuzaki Data 19 noiembrie 2013 11:29:02
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.4 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
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");

bitset<1000000000000000002> div;
ll q;

int getNext(int nr) {
    switch (nr) {
        case 2:
            return 3;
        case 3:
            return 5;
        case 5:
            return 7;
        case 7:
            return 11;
        case 11:
            return 0;
    }
    return 0;
}

int main() {
    div.reset();
    for (int i = 0; i < 276997; i++) {
        ll nr = getLl();
        div[nr] = true;
    }

    ll sol = 0;
    q = getLl();
    for (ll i = 1; i <= q; i++) {
        ll nr = getLl();

        if (div[nr] == true) {
            sol++;
        }
    }

    g << sol;

    g.close();
    return 0;
}