Submission
Status:
[-SS][-SSSSS][-S]
Score: 0
User: akuyga1
Problemset: ช่างไฟ
Language: c
Time: 0.104 second
Submitted On: 2024-10-10 14:04:25
#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;
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);
}