Cod sursa(job #3333316)
| Utilizator | Data | 12 ianuarie 2026 22:19:36 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 65 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.71 kb |
#include<fstream>
using namespace std ;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int dp[1000001] ;
int main(){
int n ;
cin>>n;
for(int i = 1 ; i <= n ; i ++ )
cin>>dp[i];
int mx = dp[1] , curr = dp[1] , ind ;
for(int i = 2 ; i <= n ; i ++ )
{
curr = max(dp[i],curr+dp[i]);
if(mx < curr ){
ind = i ;
mx = curr ;
}
}
int end = ind , start ;
cout<<mx<< ' ';
while(mx!=0){
start = ind;
mx-=dp[ind];
ind -- ;
}
cout<<start<< ' '<<end;
return 0 ;
}