Advertisement
Guest User

Untitled

a guest
Dec 21st, 2021
463
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.62 KB | None | 0 0
  1. int d7p1(const string& filename)
  2. {
  3.     ifstream file(filename);
  4.     string line;
  5.     getline(file, line);
  6.     stringstream iss(line);
  7.  
  8.     vector<int> crabs;
  9.     for (int number; iss >> number;)
  10.     {
  11.         crabs.push_back(number);
  12.         if (iss.peek() == ',')
  13.             iss.ignore();
  14.     }
  15.  
  16.     std::sort(crabs.begin(), crabs.end());
  17.     int idx;
  18.     if (crabs.size() % 2 == 1)
  19.         idx = crabs[(crabs.size() + 1) / 2];
  20.     else
  21.     {
  22.         int left = crabs[crabs.size() / 2 - 1];
  23.         int right = crabs[crabs.size() / 2];
  24.         idx = (int)((left + right) / 2);
  25.     }
  26.  
  27.     int fuel = 0;
  28.     for (const auto& crab : crabs)
  29.     {
  30.         fuel += (int)abs(crab - idx);
  31.     }
  32.     return fuel;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement