Cod sursa(job #3188763)

Utilizator AdrianRosuRosu Adrian Andrei AdrianRosu Data 3 ianuarie 2024 19:57:36
Problema Rays Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <bits/stdc++.h>
#define DIM 200001
#define y1 wiuhweidf

using namespace std;

ifstream fin("rays.in");

ofstream fout("rays.out");

vector < pair <long double, long double> > a, b; // pt 2 cadrane diferite

int n, k, x, y1, y2, i;

int solve1(){

    sort(a.begin(), a.end());

    int answer = 0;

    long double k = -1e9;

    for(auto i : a){

        if(i.first > k){

            answer++;

            k = i.second;

        }

        else

            k = min(k, i.second);

    }

    return answer;

}

int solve2(){

    sort(b.begin(), b.end());

    int answer = 0;

    long double k = -1e9;

    for(auto i : b){

        if(i.first > k){

            answer++;

            k = i.second;

        }

        else

            k = min(k, i.second);

    }

    return answer;

}

int main(){

    fin >> n;

    for(i=1;i<=n;i++){

        fin >> x >> y1 >> y2;

        if(y1 > y2)

            swap(y1, y2);

        if(x < 0)

            a.push_back(make_pair(y1 / abs(1.0 * x), y2 / abs(1.0 * x)));

        else b.push_back(make_pair(y1 / abs(1.0 * x), y2 / abs(1.0 * x)));


    }

    fout << solve1() + solve2() << "\n"; // cele 2 cadrane

}