我在測試執行時都正確,而測驗結果在#0~#17是WA,在#18是TLE
我知道VLA是非標準寫法,但是也不應該會錯啊
int main(){ int n,small=10000000,m,sum_l=0,sum_r=0; cin >>n; int a[n],l=0,r=n-1; for(int i=0;i<n;i++) cin>>a[i]; do{ small=10000000; for(int i=l;i<=r;i++){ if(a[i]<small){ small=a[i]; m=i; } } for(int i=l;i<m;i++){ sum_l +=a[i]; } for(int i=m+1;i<=r;i++){ sum_r +=a[i]; } if(sum_l>sum_r){ l=l; r=m-1; sum_l=0; sum_r=0; } else if(sum_r>=sum_l){ l=m+1; r=r; sum_l=0; sum_r=0; } }while(r-l>1); if(r==l){ cout <<a[l]; } else if (a[l]>a[r]){ cout<< a[l]; } else if (a[r]>a[l]){ cout<< a[r]; } return 0; }
我在測試執行時都正確,而測驗結果在#0~#17是WA,在#18是TLE
我知道VLA是非標準寫法,但是也不應該會錯啊
int main(){ int n,small=10000000,m,sum_l=0,sum_r=0; cin >>n; int a[n],l=0,r=n-1; for(int i=0;i<n;i++) cin>>a[i]; do{ small=10000000; for(int i=l;i<=r;i++){ if(a[i]<small){ small=a[i]; m=i; } } for(int i=l;i<m;i++){ sum_l +=a[i]; } for(int i=m+1;i<=r;i++){ sum_r +=a[i]; } if(sum_l>sum_r){ l=l; r=m-1; sum_l=0; sum_r=0; } else if(sum_r>=sum_l){ l=m+1; r=r; sum_l=0; sum_r=0; } }while(r-l>1); if(r==l){ cout <<a[l]; } else if (a[l]>a[r]){ cout<< a[l]; } else if (a[r]>a[l]){ cout<< a[r]; } return 0; }
sum要用long long,不然會溢位