ÀÛ¼ºÀÏ : 18-05-17 21:26
2017³â ÁßµîºÎ 2¹ø
 ±Û¾´ÀÌ : ¾çÁøÇõ(yangjh05)
Á¶È¸ : 2,555  
#include <stdio.h>
#include <algorithm>

using namespace std;

int N, cnt, start;

struct data{
    int x, y;
    bool operator<(const data &r) const {
        return x != r.x ? x < r.x : y < r.y;
    }
}a[2000000], b[500000];

void setting(){
    int i, sw = 0;
    for(i = start; i < N + start; i++){
        if(a[i].x == a[i + 1].x && a[i].y * a[i + 1].y < 0){
            if(!sw) b[cnt].x = a[i].x;
            else b[cnt++].y = a[i].x;
            sw = 1 - sw;
        }
    }
    for(i = 0; i < cnt; i++){
        if(b[i].x > b[i].y) swap(b[i].x, b[i].y);
    }
    sort(b, b + cnt);
}

void output(){
    int ans1 = 1, ans2 = 1, flag = b[0].y;
    for(int i = 1; i < cnt; i++){
        if(b[i].x > flag){
            ans1++;
            flag = b[i].y;
        }
        if(b[i - 1].y < b[i].x) ans2++;
    }

    printf("%d %d", ans1, ans2);
}

int main()
{
    scanf("%d", &N);
    for(int i = 0; i < N; i++){
        scanf("%d %d", &a[i].x, &a[i].y);
        a[i + N] = a[i];
        if(a[i] < a[start]) start = i;
    }

    setting();
    output();
    return 0;
}
ÀÌ°Ô ¼±»ý´ÔÀÌ ¾²½Å ÄÚµå¶û ¶È°°Àºµ¥... ¿Ö 38Á¡ÀÌ ³ª¿À´Â °ÅÁÒ?

ÄĽºÄð 18-05-18 11:01
 
if(a[i].x == a[i + 1].x && a[i].y * a[i + 1].y < 0)

ÀÌ ºÎºÐ¿¡¼­ a[i].y * a[i + 1].y °á°ú°ªÀÌ int ¹üÀ§¸¦ ¹þ¾î³ª´Â °æ¿ì °ªÀÌ ¿Ö°îµË´Ï´Ù.

(long long)a[i].y * a[i + 1].y ÀÌ·¸°Ô ¼öÁ¤Çϸé ÇØ°áµË´Ï´Ù.

½ÇÁ¦ ÄÚµå´Â ¼öÁ¤Çߴµ¥ °­ÀÇÆÄÀÏ¿¡ ¼öÁ¤ÀÌ ¾ÈµÆ½À´Ï´Ù. Á˼ÛÇÕ´Ï´Ù.

°­ÀÇ´Â °ð ¼öÁ¤ÇØ ³õ°Ú½À´Ï´Ù.

°¨»çÇÕ´Ï´Ù.
 
 

Total 663
¹øÈ£ Á¦   ¸ñ ±Û¾´ÀÌ ³¯Â¥ Á¶È¸
603 ¾Ë°í¸®Áò °­ÀÇ ½ÅûÇÒ·Á°í ÇÕ´Ï´Ù. (1) À̽ÂÅ 01-15 3067
602 ÀÔ±ÝÇß¾î¿ä (1) È«ÇõÀç 01-13 2662
601 ¼ö°­½ÅûÇؼ­ ÀÔ±ÝÀ» Çߴµ¥ °­ÀÇ°¡ ¾ø¾î¿ä.. (1) È«ÇõÀç 01-12 3164
600 ÀÔ±ÝÈ®ÀÎ ºÎŹµå¸³´Ï´Ù. (1) ±èÁø¼÷ 01-08 2429
599 ÀÚ±âÁÖµµ C¾ð¾î ÇÁ·Î±×·¡¹Ö ¹Ýº¹Á¦¾î¹®2 Çü¼ºÆò°¡ 10 (1) À̼º¿ì 12-09 3878
598 ÀÚ±âÁÖµµ c¾ð¾î ÇÁ·Î±×·¡¹Ö <ÀÔ·Â> ÀÚ°¡Áø´Ü 8¹ø Áú¹®ÀÔ´Ï¡¦ (1) Áø¼º±Ô 10-18 2858
597    ÀÚ±âÁÖµµ c¾ð¾î ÇÁ·Î±×·¡¹Ö <ÀÔ·Â> ÀÚ°¡Áø´Ü 8¹ø Áú¹®ÀÔ´Ï¡¦ ÀÌÀçÀ± 11-04 2779
596 ÀÚ±âÁÖµµ c¾ð¾î ÇÁ·Î±×·¡¹Ö <ÀÔ·Â>ÀÚ°¡Áø´Ü5¹ø Àß ¸ð¸£°Ú¡¦ (1) Áø¼º±Ô 10-18 3211
595 ÀÔ±ÝÈ®ÀÎ ºÎŹµå·Á¿ä~~ Àå½ÂÇõ 10-02 2284
594 Ã¥À» ¾îµð¼­ »ç³ö¿ä? ³²ÁöÀ± 09-01 2631
593 15³â Ãʵî 4¹ø¹®Á¦ Áú¹®ÀÔ´Ï´Ù ¾È¼ºÈ£ 08-31 2517
592 µµ¿ÍÁÖ¼¼¿ä ³²ÁöÀ± 08-20 2489
591 ¸Àº¸±â ¿µ»óÀÌ Àç»ýÀÌ ¾ÈµÇ¿ä ³²ÁöÀ± 08-18 2453
590 ¹®ÀÚ¿­2 Çü¼ºÆò°¡5 ¹ø (1) Á¤ÁÖ¿µ 07-28 4521
589 ÀÚ±âÁÖµµ c¾ð¾î ÇÔ¼ö3-4¹ø ¹®Á¦ (1) ¸¸¼ö 06-19 2679
588 ÀÔ±Ý È®ÀÎ ºÎŹµå¸³´Ï´Ù. (1) ÀÌÈ«±¹ 06-14 2540
587 ¼ö°­¿¬Àå±ÔÁ¤ (1) ÇãÁ¾ 06-12 2377
586 ÀÔ±ÝÈ®ÀÎ ºÎŹµå¸³´Ï´Ù. (1) À±ÀÏ¿ë 06-10 2379
585 ÀÔ±ÝÇß½À´Ï´Ù. (1) Àå»ó¿ì 05-29 2317
584 °­ÀÇ ¿À·ù (1) ¾çÁøÇõ 05-27 2577
 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30    

ȸ»ç¼Ò°³ | °³ÀÎÁ¤º¸Ã³¸®¹æħ | ÀÌ¿ë¾à°ü | ã¾Æ¿À½Ã´Â ±æ | À̸ÞÀÏÁÖ¼Ò ¹«´Ü¼öÁý°ÅºÎ | »ç¾÷ÀÚÁ¤º¸È®ÀÎ
°æ±âµµ ¾È¾ç½Ã µ¿¾È±¸ È£°èµ¿ 1065-10 Çù¼º°ñµåÇÁ¶óÀÚ 601È£ ÇÑÄÄ¿¡µàÄÉÀ̼Ç(ÁÖ) TEL : 031-388-8840 FAX : 031-388-0996
´ëÇ¥ÀÚ : ±èµ¿±Ô »ç¾÷ÀÚ¹øÈ£ : 130-86-02870 Åë½ÅÆǸž÷½Å°í¹øÈ£ : Á¦ 2010-°æ±â¾È¾ç-888È£
COPYTIGHT(C) ÇÑÄÄ¿¡µàÄÉÀ̼Ç(ÁÖ), ALL RIGHT RESERVED.
´ãÀº°­Á : 0