FESTIVAL 문제

  • manzu
    manzu

    FESTIVAL

    문제에 대한 질문입니다.

    재귀로 이문제를 풀어보았습니다.

    시간은 아슬아슬하게 통과합니다만... 어디에서 도데체 오답이 나는 지

    모르겠습니다.

    #include <stdio.h>
    #include <stdlib.h>
    #include <memory.h>
    
    #define MAX_SIZE 1002
    #define MAXNUM 9999
    int arrData[MAX_SIZE];
    
    double result;
    void Init();
    void InputData();
    double _recuData(int teamNum,int arrNum, double minNum);
    
    int main()
    {
        int i = 0 ;
        int testCase = 0 ;
        scanf("%d",&testCase);
        for( i = 0 ; i<testCase; i++)
        {
            Init();
            InputData();
        }
        return 0 ;
    }
    
    void Init()
    {
        memset(arrData,0,sizeof(arrData)/sizeof(int));
    
    }
    
    void InputData()
    {
        int i  = 0 ;
        int arrNum  = 0 ;
        int teamNum = 0 ;
        scanf("%d %d",&arrNum,&teamNum);
        for(i = 0 ; i<arrNum; i++)
        {
            scanf("%d",&arrData[i]);
        }
        _recuData(teamNum,arrNum,MAXNUM);
    
    }
    double _recuData(int teamNum,int arrNum,double minNum)
    {
        int i = 0 ;
        double min = 0 ;
        int startIndex = 0 ;
        if(teamNum == arrNum)
        {
            for( i = 0 ; i<teamNum ; i ++)
            {
                min = min + arrData[startIndex+i];
            }
            if(min/teamNum <minNum)
            {
                minNum = min/teamNum ;
            }
            printf("%.12f\n",minNum);
            return minNum;
        }
        for( startIndex = 0 ; startIndex < arrNum ;  startIndex++)
        {
            for( i = 0 ; i<teamNum ; i ++)
            {
                min = min + arrData[startIndex+i];
            }
            if(min/teamNum <minNum)
            {
                minNum = min/teamNum ;
            }
        }
        teamNum++;
        _recuData(teamNum,arrNum,minNum);
    
    }
    

    10년 전
1개의 댓글이 있습니다.
  • manzu
    manzu

    해결하였습니다...ㅠㅠ 역시 질문하다가 답을 찾게되네요 ..ㅠㅠ 인덱스 값이 잘못되었었습니다.


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