Advertisement
astraldawn

italian_olympiad1

May 3rd, 2011
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. #include <cstdio>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <cmath>
  5. #define MAXN 505
  6. using namespace std;
  7.  
  8. int N;
  9. vector <int> A;
  10.  
  11. int main(){
  12.     //freopen("italian1.in","r",stdin);
  13.     scanf("%d\n",&N);
  14.     for(int i=0;i<N;i++){
  15.         int a; scanf("%d",&a);
  16.         A.push_back(a);
  17.     }
  18.     int lmin = 0;
  19.     while(A.size() >= 2){
  20.         /* Prints array that is being iterated through */
  21.         //for(int i=0;i<A.size();i++)printf("%d ",A[i]); printf("\n");
  22.  
  23.         int minval = INT_MAX-(1<<10), absmin = INT_MAX-(1<<10), minidx = 0;
  24.         for(int i=0;i<A.size()-1;i++){
  25.             int cval = A[i] + A[i+1];
  26.             if(abs(cval) < absmin){
  27.                 minval = cval;
  28.                 absmin = abs(cval);
  29.                 minidx = i;
  30.             }
  31.         }
  32.         lmin = max(lmin,abs(absmin));
  33.         int c = 0;
  34.         for(int i=0;i<A.size();i++){
  35.             if(i == minidx){
  36.                 A[c++] = minval;
  37.                 i++;
  38.                 continue;
  39.             }
  40.             A[c++] = A[i];
  41.         }
  42.         int x = A.size(); A.resize(x-1);
  43.     }
  44.     printf("%d\n",lmin);
  45.     return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement