Cod sursa(job #2390088)

Utilizator NeredesinI am not real Neredesin Data 27 martie 2019 19:16:46
Problema Regiuni Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>
#include <map>

#define ll long long
#define mk make_pair

using namespace std;

ifstream in("regiuni.in");
ofstream out("regiuni.out");

const int NMAX = 1e2 + 1e2;
const int MOD = 666013;

int n, m, nr;
int a[NMAX], b[NMAX], c[NMAX];
int x[NMAX], y[NMAX];

map < pair < int, int > , bool > s;

int main(void)
{
  in >> n >> m;

  for(int i = 1; i <= n; i++)
    in >> a[i] >> b[i] >> c[i];

  for(int i = 1; i <= m; i++)
    in >> x[i] >> y[i];

  for(int i = 1; i <= m; i++) {
    int r1 = 0;
    int r2 = 0;

    for(int j = 1; j <= n; j++) {
      ll v = 1ll * a[j] * x[i] + 1ll * b[j] * y[i] + c[j];

      v = (v > 0);

      r1 = (r1 * 10 + v) % MOD;
      r2 = (r2 * 10 + v) % 997;
    }

    if(!s.count(mk(r1, r2))) {
      ++nr;
      s[mk(r1,r2)] = 1;
    }
  }

  out << nr << '\n';

  in.close();
  out.close();

  return 0;
}