iscsi

SPOJ 345. Mixtures

Jul 28th, 2011
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4. #include <vector>
  5. #include <queue>
  6. #include <set>
  7. #include <map>
  8. #include <cstdio>
  9. #include <cstdlib>
  10. #include <cctype>
  11. #include <cmath>
  12. using namespace std;
  13. typedef long long LL;
  14. #define FOR(k,a,b) for(int k(a); k < (b); ++k)
  15. #define REP(k,a) for(int k=0; k < (a); ++k)
  16.  
  17. int main()
  18. {
  19.  
  20.     int n;
  21.     cin >> n;
  22.     vector<int> v(n);
  23.     vector<vector<int> > w(n,vector<int> (n)),s(n,vector<int> (n,100000000));
  24.     REP(i,n)
  25.     {
  26.         cin>>v[i];
  27.         s[i][i]=0;
  28.     }
  29.     REP(i,n)
  30.     {
  31.         w[i][i]=v[i];
  32.         FOR(j,i+1,n)
  33.             w[i][j]=(w[i][j-1]+v[j])%100;
  34.     }
  35.     FOR(len,1,n)
  36.     REP(i,n-len)
  37.     FOR(j,i,i+len)
  38.     {//i,j,j+1,i+len
  39.         if(s[i][i+len]>s[i][j]+s[j+1][i+len]+w[i][j]*w[j+1][i+len])
  40.             s[i][i+len]=s[i][j]+s[j+1][i+len]+w[i][j]*w[j+1][i+len];
  41.     }
  42.     cout << s[0][n-1] << endl;
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment