Cod sursa(job #1457918)

Utilizator cojocarugabiReality cojocarugabi Data 4 iulie 2015 21:47:38
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
# include <bits/stdc++.h>
# define ll long long
# define mk make_pair
using namespace std;
ifstream fi("regiuni.in");
ofstream fo("regiuni.out");
const int nmax = 1e3 + 5;
const int mod1 = 666013;
const int mod2 = 997;
int a[nmax],b[nmax],c[nmax];
int x[nmax],y[nmax];
map < pair < int , int > , bool > s;
int main(void)
{
    int n,m;
    fi>>n>>m;
    for (int i = 1;i <= n;++i) fi>>a[i]>>b[i]>>c[i];
    for (int i = 1;i <= m;++i) fi>>x[i]>>y[i];
    int ans = 0;
    for (int i = 1;i <= m;++i)
    {
        int r1 = 0,r2 = 0;
        for (int j = 1;j <= n;++j)
        {
            ll o = 1ll * a[j] * x[i] + 1ll * b[j] * y[i] + c[i];
            o = (o>0);
            r1 = (r1 * 10 + o) % mod1;
            r2 = (r2 * 10 + o) % mod2;
        }
        if (!s.count(mk(r1,r2))) ++ans,s[mk(r1,r2)] = 1;
    }
    return fo << ans << '\n',0;
}