Nu aveti permisiuni pentru a descarca fisierul grader_test8.ok

Cod sursa(job #1031853)

Utilizator goguGogu Marian gogu Data 15 noiembrie 2013 18:30:46
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda FMI No Stress 4 Marime 1 kb
#include <cstdio>
#include <bitset>

#define NR_GOOD 276997
#define MOD1 ((1 << 22) + 1)

std::bitset<MOD1> posOk;

unsigned long long cit() {
   char lin[20];
   fgets(lin, sizeof(lin), stdin);
   unsigned long long val = 0;
   int poz = 0;
   while (lin[poz]) {
      val = val * 10 + (lin[poz++] - '0');
   }
   return val;
}

bool isGood(unsigned long long val) {
   while (val % 2) val /= 2;
   while (val % 3) val /= 3;
   while (val % 5) val /= 5;
   while (val % 7) val /= 7;
   while (val % 11) val /= 11;
   return val == 1;
}

int main() {
   freopen("dtcsu.in", "rb", stdin);
   freopen("dtcsu.out", "wb", stdout);
   for (int i = 0; i < NR_GOOD; i++) {
      unsigned long long good = cit();
      posOk[good % MOD1] = true;
   }
   int nrSol = 0, nrQ;
   scanf("%d\n", &nrQ);
   for (int i = 0; i < nrQ; i++) {
      unsigned long long val = cit();
      if (posOk[val % MOD1] && isGood(val)) {
         nrSol++;
      }
   }
   printf("%d\n", nrSol);
   return 0;
}