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,&current,N);
	    //printf("%d",current);
	}
	printf("%d",sum);
}