메뉴 건너뛰기

Programing

BAEKJOON

14865

관리자 2019.12.21 19:29 조회 수 : 8

C++

#include <cstdio>

#include <algorithm>

#include <vector>

 

 

using namespace std;

int N;

struct Axis{

    int x;

    int zero;//1==-,0==+                      저장을 고유값으로 저장할것

    bool operator < ( const Axis& axis ) const

    {

        return x < axis.x;

    }

};

 

using  Pt = pair<int,int>;

Pt pts[1000000];

 

vector<Axis> axis_vec;

 

int main()

{

    /*Axis axis, axis2;

    axis.x = 10;

    axis2.x = 20;

    if ( axis.operator < ( axis2 ) )

    {

 

    }

 

    if( axis < axis2 )

    {

 

    }

 

    int a;

    int &ra = a;

    &a == &ra

    int *p = &a;

    *p = 10;

    p = &b;*/

 

    scanf("%d",&N);

    int a,b;

    int j;

    for(j=0;j<N;j++){

        scanf("%d %d",&a,&b);

        pts[j].first=a;

        pts[j].second=b;

    }

    int minus_;

    for(int i=0;i<N;i++){

        if(pts[i].second<0){

            minus_=i;

            break;

        }

    }

    int p1 = minus_, p2;

    for(j=0;j<N;j++){

        p2 = (p1 + 1) % N;

 

        if(pts[p1].second<0 && pts[p2].second >0){

            axis_vec.push_back({pts[p1].first, 0});

        }else if(pts[p1].second >0 && pts[p2].second < 0){

            if( axis_vec.back().x > pts[p1].first)

            {

                int x2 = axis_vec.back().x;

                axis_vec.back().x = pts[p1].first;

                axis_vec.push_back({x2, 1});

            }

            else

                axis_vec.push_back({pts[p1].first, 1});

        }

 

        p1 = p2;

    }

 

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

int numa=0,numb=0;

    int level=0;

    auto it = axis_vec.begin();

for(;it!=axis_vec.end();++it){

        if(it->zero==0){

            if(level==0){

                numa++;

            }

            if((it+1)->zero==1)

              numb++;

            level++;

        }else{

            level--;

        }

}

printf("%d %d",numa,numb);

    return 0;

}

번호 제목 글쓴이 날짜 조회 수
공지 안내사항 관리자 2019.12.21 169
74 9663 관리자 2019.12.21 120
73 9345 관리자 2020.04.11 156
72 9019 관리자 2019.12.21 119
71 7569 관리자 2019.12.21 119
70 6987 관리자 2019.12.21 120
69 5842 관리자 2020.04.11 157
68 5625 관리자 2019.12.21 115
67 5419 관리자 2020.04.11 162
66 3392 관리자 2020.04.11 162
65 3019 관리자 2019.12.21 117
64 2933 관리자 2019.12.21 119
63 2931 관리자 2019.12.21 117
62 2836 관리자 2019.12.21 116
61 2667 관리자 2019.12.21 119
60 2636 관리자 2019.12.21 119
59 2629 관리자 2020.04.11 152
58 2615 관리자 2019.12.21 117
57 2610 관리자 2020.04.11 152
56 2606 관리자 2019.12.21 117
55 2585 관리자 2019.12.21 119
54 2578 관리자 2019.12.21 117
53 2573 관리자 2020.04.11 157
52 2557 관리자 2019.12.21 117
51 2512 관리자 2019.12.21 117
50 2504 관리자 2020.04.11 153
49 2481 관리자 2019.12.21 118
48 2478 관리자 2020.04.11 154
47 2473 관리자 2020.04.11 159
46 2470 관리자 2020.04.11 157
위로