- #include <bits/stdc++.h>
- using namespace std;
- int num[105]={0};
- int num1[105]={0};
- int N[105]={0}; //0無 1綠 2藍 3紅
- int sum=0;
- int cmp( int a,int b){ //宣告以絕對值排序
- return abs(a)>abs(b);
- }
- int main()
- {
- int n;//7
- while(cin>>n){ //4 -6 10 3 -10 -1 5
- for(int i=1;i<=n;i++){
- cin>>num[i];
- num1[i]=num[i]; //讓num1[]裡的值和num[]陣列一致
- }
- sort(num1+1,num1+n+2,cmp);// 10 -10 6 5 4 3 -1//從num1[1]到num1[n],以絕對值排序
-
- for(int i=1;i<=n;i++){
- for(int j=1;j<=n;j++){
- if(num1[i]==num[j]){
- if(num[j]>=0){//若為正值
- if(N[j-1]!=1 && N[j+1]!=1) {
- N[j]=1;
- sum+=num[j];
- }
- else if(N[j-1]!=2 && N[j+1]!=2)
- N[j]=2;
- else{
- N[j]=3;
- sum-=num[j];
- }
- }
- else{//若為負值
- if(N[j-1]!=3 && N[j+1]!=3){
- N[j]=3;
- sum-=num[j];
- }
- else if(N[j-1]!=2 && N[j+1]!=2)
- N[j]=2;
- else{
- N[j]=1;
- sum+=num[j];
- }
- }
- }
- }
- continue;
- }
- cout<<sum<<endl;
- return 0;
- }
- }
複製代碼 |