Submission
Status:
[PPP][-SSSSS][-S]
Score: 30
User: akuyga1
Problemset: ช่างไฟ
Language: c
Time: 0.095 second
Submitted On: 2024-10-10 14:11:06
#include <stdio.h>
#include<math.h>
int series(int sum,int A[],int* current,int len){
//plus to plus
//or minus to minus
int comp1=sum,comp2=sum;
int i;
if(A[*current]>=0){
for(i=(*current);i<len;i++){
if(A[i]<0)break;
sum+=A[i];
}
}
else {for(i=(*current);i<len;i++){
if(A[i]>=0)break;
comp1+=A[i];comp2=fabs(comp2+A[i]);
} (*current)+=i-(*current);
comp1=fabs(comp1);
if(comp1>comp2) sum=comp1;
else sum=comp2;
}
(*current)=i;
//printf(" %d ",sum);
return sum;
}
int main() {
int N;
scanf("%d",&N);
int A[N];
for(int i=0;i<N;i++)scanf("%d",&A[i]);
int current=0;int sum=0;
while(current<N){
sum=series(sum,A,¤t,N);
//printf("%d",current);
}
printf("%d",sum);
}