测试点不能过,自己跑的样例的结果是正确的
查看原帖
测试点不能过,自己跑的样例的结果是正确的
1538946
UGIWBGS楼主2024/11/29 15:22
#define MAX(a,b) (a)>(b)?(a):(b)
int Time(int length){
    int arr[20]={0};
    for(int i=0;i<length;i++){scanf("%d",&arr[i]);}
    int left,right;
    int index=0;
    int dif=0;
    int time=0;
    while(index<=18){
        //每次两个一起判断
        left=arr[index]-dif>0?(arr[index]-dif):0;
        right=arr[index+1]-dif>0?(arr[index+1]-dif):0;

        time=time+(MAX(left,right));//记录当前最大值
        dif=abs(left-right);//平衡差
        index+=2;//更新下标
    }
    return time;
}
int main(){
    int a[4];
    for(int i=0;i<4;i++){scanf("%d",&a[i]);}
    int time=0;
    for(int i=0;i<4;i++){time+=Time(a[i]);}
    printf("%d",time);
}
2024/11/29 15:22
加载中...