아직 계정이 없으신가요? 회원가입

Dev. Talk

복잡한 조립라인2 시간 초과

회원사진iwbap0110
90 views2021-11-03 20:59

복잡한 조립라인2에서 시간초과가 다음과 같이 됩니다. 테스트케이스 추가해서 K가 4000정도 되면 시간초과로 되버리는데 혹시 아시는 분 있으신가요?

#include <stdio.h>

int main()
{      
    int K;
    int N;

    float Work[10000][100];
    float Move[10000];
    float Finish[10000][100];
  
    int i, j, k;
    
    int min;
    int temp;
    int result;
    
    scanf("%d", &K);
    scanf("%d", &N);

    for(int j = 0; j < N; j++)
    {
        getchar();
        for(int i = 0; i < K; i++)
        {
            scanf("%d", (*(Work + i) + j));
        }

        if(j < N - 1)
        {
            scanf(" %d", (Move + j));
        }
    }

    for(int i = 0; i < K; i++)
    {
        *(*(Finish + i)) = *(*(Work + i));
    }

    for(int j = 1; j < N; j++)
    {
        for(int i = 0; i < K; i++)
        {
            min = *(*(Finish) + j - 1) + *(Move + j - 1);

            for(int k = 1; k < K; k++)
            {
                temp = *(*(Finish + k) + j - 1) + *(Move + j - 1);
         
                min = temp <= min ? temp : min;

            }

            temp = *(*(Finish + i) + j - 1);
       
            min = temp <= min ? temp : min;
            

            *(*(Finish + i) + j) = min + *(*(Work + i) + j);
        }
    }
 
    result = *(*(Finish) + N - 1);

    for(int i = 1; i < K; i++)
    {
        temp = *(*(Finish + i) + N - 1);

        result = temp <= result ? temp : result;  
    }

    printf("%d", result);

    return 0;
}