luyencode / comments

Server lưu trữ bình luận trên Luyện Code
https://luyencode.net
6 stars 3 forks source link

https://oj.luyencode.net/problem/SUB #870

Open utterances-bot opened 1 year ago

utterances-bot commented 1 year ago

Chi tiết bài tập - Luyện Code Online

https://oj.luyencode.net/problem/SUB

ThuanNqt commented 1 year ago

Mình có giải thích chi tiết trong code

Xem code AC

```cpp #include using namespace std; typedef long long ll; //Với dãy con ta chr cần cộng tổng các số dương trong mảng là được nếu không có số dương ta lấy số âm lớn nhất trong mảng //Với đoạn con liên tiếp ta duy trì 2 biến sum1 là tổng tạm thời và sum2 lưu kỷ lục đạt được int main(){ int t;cin>>t; while(t--){ ll n,k;cin>>n; ll a[n]; ll sum=0,check=0; for(int i=0;i>a[i]; if(a[i]>0){ sum+=a[i]; check=1;//có số dương trong mảng } } //Nếu không có số âm trong mảng ta lấy số âm lớn nhất trong mảng if(check==0) sum=*max_element(a,a+n); //THUẬT TOÁN TÌM ĐOẠN LIÊN TIẾP CÓ TỔNG LỚN NHẤT ll sum1=0,sum2=-1e9; for(int i=0;i

markk299 commented 1 year ago

Các bác sửa giúp em được không ạ

include<bits/stdc++.h>

using namespace std; long long t,n,a[10000001],s,check = 0,mi=-1e10,m,sum,maxx=-1e10; int main(){ cin>>t; for(int i=1;i<=t;i++){ check = 0; s = 0; sum = 0; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; if(a[i] > 0){ s = s + a[i]; check = 1; } if (check == 0) { if(a[i]>mi) mi = a[i];} } if(check == 1) {cout<<s<<' ';} else cout<<mi<<' '; for(int i=1;i<=n;i++){ sum += a[i]; if(sum<0) sum = 0; if(sum>maxx) maxx= sum; } cout<<maxx<<endl; } }