MAGICPOWER 문제 오답의 이유를 알고 싶습니다

  • xo0523xo
    xo0523xo

    MAGICPOWER
    위에 문제에 대하여 출력을 한번에 하는 것과
    각 경우마다 출력하는것 두가지로 시도해보았는데
    계속 오답이 발생하여 원인을 알고 싶습니다

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int N = 100, M = 10000;
        int T = 0;
        int nGetMagic = 0;
        int nMax = 0;
    
        cin >> T;
    
        int *arr = new int[T];
    
        for (int num1 = 0; num1 < T; num1++)
        {
            cin >> N >> M;
            if (N > 100 || N < 1 || M > 10000 || M < 1)
                break;
            int *magicNum = new int[N];
    
            for (int num2 = 0; num2 < N; num2++)
            {
                cin >> magicNum[num2];
                if (magicNum[num2] > 10000 || magicNum[num2] < 1)
                    break;
            }
    
            for (; M > 0; M--)
            {
                for (int num2 = 0; num2 < N; num2++)
                {
                    if (!num2)
                        nMax = 0;
                    else if (magicNum[num2] > magicNum[num2 - 1])
                        nMax = num2;
                }
    
                if (magicNum[nMax])
                {
                    nGetMagic += magicNum[nMax];
                    magicNum[nMax]--;
                }
            }
    
            arr[num1] = nGetMagic;
            nGetMagic = 0;
            N = 100, M = 10000;
    
            delete[]magicNum;
        }
    
        for (int num1 = 0; num1 < T; num1++)
        {
            cout << arr[num1] << endl;
        }
    
        delete []arr;
        return 0;
    }
    

    9년 전
1개의 댓글이 있습니다.
  • JongMan
    JongMan

    nMax를 잘못 구하고 계신 것 같네요.


    9년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.