Advertisement
senb1

krsu 657 (15 points)

Mar 20th, 2023
592
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.98 KB | None | 0 0
  1. /*
  2. by: senb1 aka amigo
  3. */
  4.  
  5. #include <bits/stdc++.h>
  6.  
  7. using namespace std;
  8.  
  9. typedef unsigned long long ull;
  10. typedef long long ll;
  11. #define all(x) x.begin(), x.end()
  12. #define endl '\n'
  13.  
  14. const ll maxn = 26;
  15. const ll inf = 1e9 + 6;
  16. const ll mod = 1e9 + 7;
  17.  
  18. int main() {
  19.     std::ios::sync_with_stdio(0);
  20.     std::cin.tie(0);
  21.  
  22.     int n;
  23.     cin >> n;
  24.     if (n == 2) {
  25.         int x1, y1, z1, x2, y2, z2;
  26.         cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;
  27.         int ax1 = min((2018 - x1), x1), ay1 = min((2018 - y1), y1),
  28.             az1 = min((2018 - z1), z1);
  29.         int ax2 = min((2018 - x2), x2), ay2 = min((2018 - y2), y2),
  30.             az2 = min((2018 - z2), z2);
  31.         int ans = min(ax1, min(ay1, az1)) + min(ax2, min(ay2, az2));
  32.         int x3 = abs(x1 - x2), y3 = abs(y1 - y2), z3 = abs(z1 - z2);
  33.         ans = min(ans, min(min(ax1, min(ay1, az1)), min(ax2, min(ay2, az2))) +
  34.                            x3 + y3 + z3 - 1);
  35.         cout << ans << endl;
  36.     } else {
  37.         int x1, y1, z1, x2, y2, z2, x3, y3, z3;
  38.         cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2 >> x3 >> y3 >> z3;
  39.         int ax1 = min((2018 - x1), x1), ay1 = min((2018 - y1), y1),
  40.             az1 = min((2018 - z1), z1);
  41.         int ax2 = min((2018 - x2), x2), ay2 = min((2018 - y2), y2),
  42.             az2 = min((2018 - z2), z2);
  43.         int ax3 = min((2018 - x3), x3), ay3 = min((2018 - y3), y3),
  44.             az3 = min((2018 - z3), z3);
  45.         int ans = min(ax1, min(ay1, az1)) + min(ax2, min(ay2, az2)) +
  46.                   min(ax3, min(ay3, az3));
  47.         int x4 = abs(x1 - x2), y4 = abs(y1 - y2), z4 = abs(z1 - z2);
  48.         int x5 = abs(x2 - x3), y5 = abs(y2 - y3), z5 = abs(z2 - z3);
  49.         int x6 = abs(x3 - x1), y6 = abs(y3 - y1), z6 = abs(z3 - z1);
  50.         int x7 = max(min(x1, x2), max(min(x2, x3), min(x1, x3)));
  51.         int y7 = max(min(y1, y2), max(min(y2, y3), min(y1, y3)));
  52.         int z7 = max(min(z1, z2), max(min(z2, z3), min(z1, z3)));
  53.         int x8 = abs(x1 - x3), y8 = abs(y1 - y3), z8 = abs(z1 - z3);
  54.         int x9 = abs(x2 - x3), y9 = abs(y2 - y3), z9 = abs(z2 - z3);
  55.         int x10 = abs(x3 - x4), y10 = abs(y3 - y4), z10 = abs(z3 - z4);
  56.  
  57.         ans =
  58.             min(ans, min(min(min(ax1, min(ay1, az1)), min(ax2, min(ay2, az2))),
  59.                          min(ax3, min(ay3, az3))) +
  60.                          x4 + y4 + z4 - 1);
  61.         ans =
  62.             min(ans, min(min(min(ax1, min(ay1, az1)), min(ax2, min(ay2, az2))),
  63.                          min(ax3, min(ay3, az3))) +
  64.                          x5 + y5 + z5 - 1);
  65.         ans =
  66.             min(ans, min(min(min(ax1, min(ay1, az1)), min(ax2, min(ay2, az2))),
  67.                          min(ax3, min(ay3, az3))) +
  68.                          x6 + y6 + z6 - 1);
  69.         ans =
  70.             min(ans, min(min(min(ax1, min(ay1, az1)), min(ax2, min(ay2, az2))),
  71.                          min(ax3, min(ay3, az3))) +
  72.                          x8 + y8 + z8 + x9 + y9 + z9 + x10 + y10 + z10 - 1);
  73.         cout << ans << endl;
  74.     }
  75. }
  76. /*
  77.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement