ÀÛ¼ºÀÏ : 18-05-21 00:07
2012 Áß2 Àü½ÃÀå
 ±Û¾´ÀÌ : ¾çÁøÇõ(yangjh05)
Á¶È¸ : 4,467  
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>

using namespace std;

struct picture{
    int h;
    int money;
}H[300100];

int ptr = -1;
int N, S;
int D[300100];

bool cmp(picture A, picture B){
    return A.h < B.h;
}

int Fd_max(int HM){
    if(HM < H[0].h) return ptr = -1;
    if(ptr == -1) ptr = 0;
    for(int i = ptr; i < N; i++){
        if(HM < H[i].h) return ptr = i - 1;
    }
}

int max(int a, int b){
    return a < b? b : a;
}

void Fl_dyn(){
    D[0] = H[0].money;
    for(int i = 1; i < N; i++){
        int X = Fd_max(H[i].h - S);
        if(X == -1) D[i] = max(D[i - 1], H[i].h);
        else {
            int x = ptr;
            D[i] = max(D[i - 1], D[x] + H[i].money);
        }
    }
}

int main()
{
    scanf("%d %d", &N, &S);
    for(int i = 0; i < N; i++){
        scanf("%d %d", &H[i].h, &H[i].money);
    }
    sort(H, H + N, cmp);
    Fl_dyn();
    printf("%d\n", D[N - 1]);
    return 0;
}
//¼±»ý´ÔÀÌ °­ÀÇÇØÁֽŴë·Î Äڵ带 Â¥ ºÃ´Âµ¥¿ä... ¾îµð°¡ Ʋ·Á¼­ 30Á¡Àϱî¿ä?

ÄĽºÄð 18-05-24 21:30
 
¿­½ÉÈ÷ Çϸ鼭 ½Ç·Âµµ »ó´çÈ÷ ´Ã°í Àִ°Š°°½À´Ï´Ù.
ÇÏÁö¸¸ »ç¼ÒÇÑ ¿À·ù´Â °¡´ÉÇÏ¸é µð¹ö±ëÀ» ÅëÇØ ½º½º·Î ¹®Á¦¸¦ ãÀ¸·Á°í ³ë·ÂÀ» ÇØ¾ß ÇÕ´Ï´Ù.
±×·¯Áö ¾Ê°í¼­´Â ÇѰ踦 ¹þ¾î³¯ ¼ö ¾ø½À´Ï´Ù.

if(X == -1) D[i] = max(D[i - 1], H[i].h);
ÀÌ ºÎºÐ¿¡¼­ H[i].h°¡ ´«¿¡ µé¾î¿À³×¿ä.
°°Àº ½ÄÀÇ ´Ù¸¥ °÷¿¡¼­´Â H[i].money¸¦ ½è´Âµ¥ µÑ Áß Çϳª´Â À߸øµÈ °ÍÀ̰ÚÁö¿ä?
 
 

Total 667
¹øÈ£ Á¦   ¸ñ ±Û¾´ÀÌ ³¯Â¥ Á¶È¸
607 À۳⵵ ¿¹¼±°ú Àü±¹º»¼± Ç®ÀÌ´Â ¾ðÁ¦Âë? (1) À̹ÌÈ­ 04-01 3485
606 ÀÔ±Ý È®ÀÎ ºÎʵ右´Ï´Ù (1) ·ùÁö¹Î 03-17 3167
605 ÀÚ±âÁÖµµ C¾ð¾î °­Á½Åû (1) ŹÁø¾Æ 02-09 3550
604 °áÀç ½ÂÀÎ ¿äû (1) ½Å¹Î±Õ 02-09 3159
603 ¾Ë°í¸®Áò °­ÀÇ ½ÅûÇÒ·Á°í ÇÕ´Ï´Ù. (1) À̽ÂÅ 01-15 3498
602 ÀÔ±ÝÇß¾î¿ä (1) È«ÇõÀç 01-13 3078
601 ¼ö°­½ÅÃ»ÇØ¼­ ÀÔ±ÝÀ» Çߴµ¥ °­Àǰ¡ ¾ø¾î¿ä.. (1) È«ÇõÀç 01-12 3610
600 ÀÔ±ÝÈ®ÀÎ ºÎʵ右´Ï´Ù. (1) ±èÁø¼÷ 01-08 2814
599 ÀÚ±âÁÖµµ C¾ð¾î ÇÁ·Î±×·¡¹Ö ¹Ýº¹Á¦¾î¹®2 Çü¼ºÆò°¡ 10 (1) À̼º¿ì 12-09 4496
598 ÀÚ±âÁÖµµ c¾ð¾î ÇÁ·Î±×·¡¹Ö <ÀÔ·Â> ÀÚ°¡Áø´Ü 8¹ø Áú¹®ÀÔ´Ï¡¦ (1) Áø¼º±Ô 10-18 3399
597    ÀÚ±âÁÖµµ c¾ð¾î ÇÁ·Î±×·¡¹Ö <ÀÔ·Â> ÀÚ°¡Áø´Ü 8¹ø Áú¹®ÀÔ´Ï¡¦ ÀÌÀçÀ± 11-04 3270
596 ÀÚ±âÁÖµµ c¾ð¾î ÇÁ·Î±×·¡¹Ö <ÀÔ·Â>ÀÚ°¡Áø´Ü5¹ø Àß ¸ð¸£°Ú¡¦ (1) Áø¼º±Ô 10-18 3631
595 ÀÔ±ÝÈ®ÀÎ ºÎʵå·Á¿ä~~ Àå½ÂÇõ 10-02 2684
594 Ã¥À» ¾îµð¼­ »ç³ö¿ä? ³²ÁöÀ± 09-01 3011
593 15³â Ãʵî 4¹ø¹®Á¦ Áú¹®ÀÔ´Ï´Ù ¾È¼ºÈ£ 08-31 2886
592 µµ¿ÍÁÖ¼¼¿ä ³²ÁöÀ± 08-20 2887
591 ¸Àº¸±â ¿µ»óÀÌ Àç»ýÀÌ ¾ÈµÇ¿ä ³²ÁöÀ± 08-18 2932
590 ¹®ÀÚ¿­2 Çü¼ºÆò°¡5 ¹ø (1) Á¤ÁÖ¿µ 07-28 5042
589 ÀÚ±âÁÖµµ c¾ð¾î ÇÔ¼ö3-4¹ø ¹®Á¦ (1) ¸¸¼ö 06-19 3197
588 ÀÔ±Ý È®ÀÎ ºÎʵ右´Ï´Ù. (1) ÀÌÈ«±¹ 06-14 2917
 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