복잡한 조립라인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;
}