작성일 : 18-05-21 00:07
2012 중2 전시장
 글쓴이 : 양진혁(yangjh05)
조회 : 545  
#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 616
번호 제   목 글쓴이 날짜 조회
616 배열1에서 자가진단7 김세연 11-01 82
615 결재했습니다 김성희 10-30 101
614 2019년 문제풀이 올려주세요. (내용무) 박중수 10-27 91
613 결제 문의 한지현 10-05 127
612 방금 입금했습니다. 정민정 08-23 204
611 혹시 2008년 본선 중5 평면도 문제 풀이 올라 왔나요? (1) 이민 06-11 346
610 수강승인부탁드립니다. (1) 백현민 05-10 326
609 승인바랍니다.입금완료. (1) 이재준 04-19 394
608 작년도 예선과 전국본선 풀이는 언제쯤? (1) 이미화 04-01 491
607 입금 확인 부탁드립니다 (1) 류지민 03-17 406
606 자기주도 C언어 강좌신청 (1) 탁진아 02-09 545
605 결재 승인 요청 (1) 신민균 02-09 427
604 알고리즘 강의 신청할려고 합니다. (1) 이승태 01-15 552
603 입금했어요 (1) 홍혁재 01-13 428
602 수강신청해서 입금을 했는데 강의가 없어요.. (1) 홍혁재 01-12 926
601 입금확인 부탁드립니다. (1) 김진숙 01-08 376
600 자기주도 C언어 프로그래밍 반복제어문2 형성평가 10 (1) 이성우 12-09 751
599 자기주도 c언어 프로그래밍 <입력> 자가진단 8번 질문입니… (1) 진성규 10-18 583
598    자기주도 c언어 프로그래밍 <입력> 자가진단 8번 질문입니… 이재윤 11-04 599
597 자기주도 c언어 프로그래밍 <입력>자가진단5번 잘 모르겠… (1) 진성규 10-18 473
 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