makrusak

1152-easy

Nov 18th, 2012
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include <cstdio>
  2. #include <iostream>
  3. #include <algorithm>
  4. #include <vector>
  5. #include <string>
  6. #include <string.h>
  7. #include <queue>
  8. #include <map>
  9. #include <set>
  10. #include <cmath>
  11. #include <sstream>
  12. #include <stack>
  13. #include <cassert>
  14.  
  15. #define pb push_back
  16. #define mp make_pair
  17. #define PI 3.1415926535897932384626433832795
  18. #define sqr(x) (x)*(x)
  19. #define forn(i, n) for(int i = 0; i < n; ++i)
  20. #define ALL(x) x.begin(), x.end()
  21. #define F first
  22. #define S second
  23. #define m0(x) memset(x,0,sizeof(x))
  24. #define m1(x) memset(x,-1,sizeof(x))
  25. #define CC(x) cout << (x) << "\n"
  26. #define pw(x) (1ull<<(x))
  27.  
  28. using namespace std;
  29. typedef long long ll;
  30. typedef unsigned long long ull;
  31. typedef long double ld;
  32. typedef pair<int,int> pii;
  33. const int INF = 2147483647;
  34. const ll LLINF = 9223372036854775807LL;
  35.  
  36. int n;
  37. int a[30];
  38. int mi = INF;
  39. int sum = 0;
  40.  
  41. void dfs(int g) {
  42.   //cout << g << "\n";
  43.   if (sum==0) {
  44.     if (g<mi) mi=g;
  45.     return;
  46.   }
  47.   if (g>=mi) return;
  48.   int kill=0;
  49.   int a1, a2, a3;
  50.   int f1,f2,f3;
  51.   for (int i=0;i<n;i++) {
  52.     f1 = i, f2 = (i+1)%n, f3 = (i+2)%n;
  53.     a1=a[f1], a2=a[f2], a3=a[f3];
  54.     kill = a1+a2+a3;
  55.     if (kill==0) continue;
  56.     a[f1]=0, a[f2]=0, a[f3]=0;
  57.     sum-=kill;
  58.     dfs(g+sum);
  59.     a[f1]=a1, a[f2]=a2, a[f3]=a3;
  60.     sum+=kill;
  61.   }
  62. }
  63.  
  64. int main() {
  65.   //freopen("input.txt", "r", stdin);
  66.   //freopen("output.txt", "w", stdout);
  67.   scanf("%d", &n);
  68.   for (int i=0;i<n;i++) {
  69.     scanf("%d", &a[i]);
  70.     sum+=a[i];
  71.   }
  72.   dfs(0);
  73.   printf("%d\n", mi);
  74.   return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment