Cod sursa(job #1528250)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 19 noiembrie 2015 12:52:38
Problema Rays Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>
#include <vector>
#include <algorithm>

using namespace std;

int X,Y1,Y2,n,i,nr=0;
vector< pair<double,double> > V[2];
double x,y,ult;

inline void solve(int x)
{
    sort(V[x].begin(),V[x].end());
    int i;
    ult=-0.1-(1<<30);

    for(i=0;i<V[x].size();++i)
    if(V[x][i].second>ult )
    {
        ult=V[x][i].first;
        ++nr;
    }
}

int main()
{
    freopen("rays.in","r",stdin);
    freopen("rays.out","w",stdout);

    scanf("%d",&n);
    for(i=1;i<=n;++i)
    {
        scanf("%d%d%d",&X,&Y1,&Y2);
        if(Y1>Y2) nr=Y1, Y1=Y2, Y2=nr;
        x=(double)Y1/X;
        y=(double)Y2/X;

        if(X<0) V[0].push_back({-y,-x});
        else V[1].push_back({y,x});
    }

    nr=0;
    solve(0);solve(1);
    printf("%d\n",nr);

    return 0;
}