HDU - 1052 스트로크 기록 1

1985 단어 ACMHDU알고리즘
제목: 제목 설명: 전기 경마 의 이 야 기 는 모두 가 알 고 있 듯 이 전기 와 왕 이 경 마 를 해서 한 판 을 이기 면 200 을 벌 고 한 판 을 지면 200 을 잃 으 며 무승부 에 영향 을 주지 않 는 다.전기 가 제일 많이 벌 수 있 는 지 물 어 봐.입력: 입력 데이터 가 50 개의 테스트 사례 에 달 합 니 다.모든 데 이 터 는 하나의 정수 n (1000 개) 에서 시작 되 는데 이것 은 말의 숫자 이다.두 번 째 줄 의 모든 정 수 는 전기 말의 속도 이다.세 번 째 줄 의 모든 정 수 는 국왕의 말의 속도 이다.n 이 0 이면 입력 이 끝 납 니 다.출력: 모든 입력 의 경우 한 줄 에 하나의 숫자 를 포함 하 는데 이것 은 전기 가 얻 을 수 있 는 가장 큰 돈 입 니 다.
사고방식: 최 악의 말 로 맞은편 최 악의 말 을 만 들 수 있 으 면 최 악의 말 을 사용 해 야 한다. 그렇지 않 으 면 최 악의 말 로 상대방 의 가장 좋 은 말 을 바 꿔 야 한다.코드
#include 
//        
void sort(int *a, int left, int right)
{
    if (left >= right) 
    {
        return;
    }
    int i = left;
    int j = right;
    int key = a[left];

    while (i < j)                              
    {
        while (i < j && key <= a[j])

        {
            j--;
        }

        a[i] = a[j];

        while (i < j && key >= a[i])

        {
            i++;
        }

        a[j] = a[i];
    }

    a[i] = key; 
    sort(a, left, i - 1); 
    sort(a, i + 1, right); 
}
int main()
{
    int SL = 0;
    int XHBL = 0;
    int DYFS = 0;
    int *DYZZ = 0;
    int *DEZZ = 0;
    int *DEJWZZ = 0;
    int DIYIZU[10] = { 0 };
    int DIERZU[10] = { 10 };
    scanf("%d",&SL);
    for (XHBL = 0; XHBL < SL; XHBL++)
        scanf("%d", &DIYIZU[XHBL]);

    for (XHBL = 0; XHBL < SL; XHBL++)
        scanf("%d", &DIERZU[XHBL]);

    sort(DIYIZU,0, SL-1);
    sort(DIERZU,0, SL-1);

    DYZZ = &DIYIZU[0];
    DEZZ = &DIERZU[0];
    DEJWZZ = &DIERZU[SL - 1];
    for (XHBL=0;XHBL= *DEZZ) //                   ?       
        {
            if(*DYZZ!= *DEZZ)
                DYFS += 200;
            DYZZ++;
            DEZZ++;
        }
        else
        {
            DEJWZZ--;
            DYZZ++;
            DYFS -= 200;
        }
    }
    printf("Tianji InTotal:%d", DYFS);
    return 0;
}

좋은 웹페이지 즐겨찾기