michael_hartman_cz

PA1 - úkol 7.2 (Větrné elektrárny, s bonusem)

Mar 28th, 2013
378
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.26 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector> // sorry kittens.. earl.hustej.net/files/Every_time_you_PJC.jpg
  3. #include <cstdio>
  4. using namespace std;
  5.  
  6. int fastCountPrice(vector<unsigned int> p, int n)
  7. {
  8.     unsigned int m[100][100];
  9.     for (int i = 1; i < n; i++)
  10.         m[i][i] = 0;
  11.  
  12.     for (int L=2; L < n; L++)  
  13.      {
  14.         int j;
  15.         for (int i=1; i<=n-L+1; i++)
  16.          {
  17.             j = i+L-1;
  18.             m[i][j] = -1;
  19.             unsigned int price;
  20.             for (int k=i; k<=j-1; k++)
  21.              {
  22.                 price = m[i][k] + m[k+1][j] + p[i-1]*p[j]+p[k];
  23.                 m[i][j] = m[i][j] < price ? m[i][j] : price;
  24.              }
  25.          }
  26.      }
  27.     return m[1][n-1];
  28. }
  29.  
  30. int main ( int argc, char * argv[] )
  31.  {
  32.     cout << "Zadejte pocty sroubu pro jednotlive priruby:" << endl;
  33.     vector<unsigned int> srouby;
  34.     try
  35.      {
  36.         int input;
  37.         char c;
  38.         do
  39.          {
  40.             if ( scanf ( "%d%c", &input, &c ) != 2 || input < 1 )
  41.                 throw 2;
  42.             srouby.push_back( input );              
  43.          } while ( c != '\n' );
  44.    
  45.         if ( srouby.size() < 2 )
  46.             throw 1;
  47.      }
  48.     catch ( int e )
  49.      {
  50.         cout << "Nespravny vstup." << endl;
  51.         return e;
  52.      }
  53.     cout << "Cena: " << fastCountPrice ( srouby, srouby.size() ) << endl;
  54.     return 0;  
  55.  }
Advertisement
Add Comment
Please, Sign In to add comment