#23158: 一直NA90%


abc975318642@gmail.com (明明是AC)

學校 : 國立新營高級中學
編號 : 109565
來源 : [210.59.67.8]
最後登入時間 :
2020-10-29 14:47:22
f314. 3. 勇者修煉 -- 2020年10月APCS | From: [210.59.67.8] | 發表日期 : 2020-10-26 12:42

#include <stdio.h>
#include <stdlib.h>

int m,n,output;
int map[50][10000];
int map_r[51][10000];

int run(int x,int y)
{
    int max_r;
    int max2_r;
    max_r = findit(x,y,1);
    max2_r = findit(x,y,-1);
    if(max_r>max2_r)
        return max_r;
    else
        return max2_r;
}

int findit(int x,int y,int toward)
{
    int max_f;
    int store_f=0;
    max_f = map[x-1][y];
    while(y<n&&y>=0){
        store_f += map[x-1][y]+map_r[x-1][y];
        if(store_f>max_f)
            max_f = store_f;
        store_f -= map_r[x-1][y];
        y += toward;
    }
    return max_f;
}

int main()
{
    scanf("%d%d",&m,&n);
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            scanf("%d",&map[i][j]);
        }
    }
    for(int i=0;i<m-1;i++){
        for(int j=0;j<n;j++){
            map_r[i+1][j] = run(i+1,j);
        }
    }
    for(int i=0;i<n;i++){
        map_r[m][i] = run(m,i);
        if(map_r[m][i]>output)
            output = map_r[m][i];
    }
    printf("%d",output);
    return 0;
}
這是我的程式碼,卻一直在14和19 TLE 其他AC 不知要如何簡化QQ


 
ZeroJudge Forum