Cod sursa(job #2368317)

Utilizator lucametehauDart Monkey lucametehau Data 5 martie 2019 15:29:15
Problema Regiuni Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <map>

using namespace std;

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

const int MOD = 1e9 + 7;

struct Cf {
  int a, b, c;
};

struct Punct {
  int x, y;
};

int n, m, g, lst;

Cf v[1005];
Punct p[1005];
map <int, int> viz;

bool parteDreapta(Punct p, Cf d) {
  return (p.x * d.a + p.y * d.b + d.c > 0);
}

int main() {
  cin >> n >> m;
  for(int i = 1; i <= n; i++)
    cin >> v[i].a >> v[i].b >> v[i].c;
  for(int i = 1; i <= m; i++)
    cin >> p[i].x >> p[i].y;
  for(int i = 1; i <= n; i++) {
    int cod = 0;
    for(int j = 1; j <= m; j++) {
      if(parteDreapta(p[j], v[i]))
        cod = (3LL * cod + 1) % MOD;
      else
        cod = (3LL * cod + 2) % MOD;
    }
    if(!viz[cod])
      g++, viz[cod] = 1;
  }
  cout << g;
  return 0;
}