vlatkovski

Redenje Kocki (ne mi raboti tamu ama tocno e)

Jun 12th, 2017
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. struct T {
  7.     int p; //pocetok
  8.     //int k; //kraj
  9.     int r; //razlika
  10. };
  11.  
  12. int main() {
  13.     int n;
  14.     cin >> n;
  15.  
  16.     vector<T> t(n); //towers
  17.     for (int i = 0; i < n; ++i) {
  18.         cin >> t[i].p;
  19.     }
  20.  
  21.     for (int i = 0; i < n; ++i) {
  22.         int k, r;
  23.         cin >> k;
  24.  
  25.         //t[i].k = k;
  26.  
  27.         r = k - t[i].p; //kraj - pocetok
  28.         t[i].r = r;
  29.     }
  30.  
  31.     int moves = 0;
  32.  
  33.     { //doing this out of scope because why not?
  34.         int rMax = t[0].r, rMaxSign = rMax > 0 ? 1 : rMax < 0 ? -1 : 0, r = rMax, sign = rMaxSign, incr;
  35.  
  36.         for (int j = 0; j < n; ++j) {
  37.  
  38.             r = t[j].r;
  39.             sign = r > 0 ? 1 : r < 0 ? -1 : 0;
  40.  
  41.             if (r > 0 && rMax > 0 && r > rMax) {
  42.                 rMax = r;
  43.             } else if (r < 0 && rMax < 0 && r < rMax) {
  44.                 rMax = r;
  45.             }
  46.  
  47.             if (rMaxSign != sign) {
  48.                 incr = rMaxSign == 1 ? rMax : -rMax;
  49.                 moves += incr;
  50.                 //cout << "(incremented moves by " << incr << ")\n";
  51.  
  52.                 rMax = r;
  53.                 rMaxSign = sign;
  54.             }
  55.  
  56.             //cout << "j:" << j << " r:" << r << " rMax:" << rMax << endl;
  57.         }
  58.  
  59.         incr = rMaxSign == 1 ? rMax : -rMax;
  60.         moves += incr;
  61.         //cout << "(incremented moves by " << incr << ")\n";
  62.     }
  63.  
  64.     cout << moves;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment