Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.46 KB | None | 0 0
  1. //#define _CRT_SECURE_NO_WARNINGS
  2. //#pragma GCC optimize("Ofast")
  3. //
  4. /*
  5. ╔╗╔╦═══╗
  6. ║║║║╔══╝
  7. ║╚╝║╚══╗
  8. ║╔╗║╔══╝
  9. ║║║║╚══╗
  10. ╚╝╚╩═══╝
  11. ╔╗╔╦╗╔╗
  12. ║║║║║║║
  13. ║╚╝║╚╝║
  14. ║╔╗╠═╗║
  15. ║║║║╔╝║
  16. ╚╝╚╝╚═╝
  17. ╔═══╦════╦══╗
  18. ╚══╗╠═╗╔═╣╔╗║
  19. ─╔═╝╝─║║─║║║║
  20. ─╚═╗╗─║║─║║║║
  21. ╔══╝║─║║─║╚╝║
  22. ╚═══╝─╚╝─╚══╝
  23. ╔═══╦══╦╗╔╗
  24. ║╔══╣╔╗║║║║
  25. ║╚══╣╚╝║╚╝║
  26. ║╔═╗║╔╗║╔╗║
  27. ║╚═╝║║║║║║║
  28. ╚═══╩╝╚╩╝╚╝
  29. */
  30. #include <bits/stdc++.h>
  31. using namespace std;
  32. #define IOS ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0)
  33. #define endl "\n"
  34. #define str string
  35. #define all(c) c.begin(),c.end()
  36. typedef long long ll;
  37. typedef unsigned long long ull;
  38. #pragma warning(disable : 4996) // для printf scanf
  39. ll power(ll a, ll b)
  40. {
  41.     if (b == 0)
  42.         return 1;
  43.     if (b % 2)
  44.         return (power(a, b - 1)*a);
  45.     else {
  46.         ll t = power(a, b / 2);
  47.         return (t*t);
  48.     }
  49. }
  50. bool prime(int a)
  51. {
  52.     if (a == 2)
  53.         return true;
  54.     for (int i = 2; i*i <= a; ++i)
  55.         if (a%i == 0)
  56.             return false;
  57.     return true;
  58. }
  59. int main()
  60. {
  61.     IOS;
  62.     int n;
  63.     cin>>n;
  64.     int ans=0;
  65.     int v[4];
  66.     for (int i=0;i<4;++i)
  67.         v[i]=-1;
  68.     while(n--){
  69.         int a,b,c;
  70.         cin>>a>>b>>c;
  71.         ans+=max({a,b,c});
  72.         if (c==max({a,b,c}))
  73.             ans+=max(a,b);
  74.         else if (b==max({a,b,c}))
  75.             ans+=max(a,c);
  76.         else
  77.             ans+=max(b,c);
  78.         vector <int>d{a,b,c};
  79.         sort(all(d));
  80.         {
  81.             //d[1]-d[0]
  82.             int cur=d[1]-d[0];
  83.             if (cur%4==1){
  84.                 if (v[2]>1)
  85.                     v[3]=(v[3]==-1||v[2]+cur<v[3])?v[2]+cur:v[3];
  86.                 if (v[1]>1)
  87.                     v[2]=(v[2]==-1||v[1]+cur<v[2])?v[1]+cur:v[2];
  88.             }
  89.             if (cur%4==2){
  90.                 if (v[1]>1)
  91.                     v[3]=(v[3]==-1||v[1]+cur<v[3])?v[1]+cur:v[3];
  92.             }
  93.             v[cur%4]=(v[cur%4]==-1||cur<v[cur%4])?cur:v[cur%4];
  94.         }
  95.         {
  96.             //d[2]-d[1]
  97.             int cur=d[2]-d[1];
  98.             if (cur%4==1){
  99.                 if (v[2]>1)
  100.                     v[3]=(v[3]==-1||v[2]+cur<v[3])?v[2]+cur:v[3];
  101.                 if (v[1]>1)
  102.                     v[2]=(v[2]==-1||v[1]+cur<v[2])?v[1]+cur:v[2];
  103.             }
  104.             if (cur%4==2){
  105.                 if (v[1]>1)
  106.                     v[3]=(v[3]==-1||v[1]+cur<v[3])?v[1]+cur:v[3];
  107.             }
  108.             v[cur%4]=(v[cur%4]==-1||cur<v[cur%4])?cur:v[cur%4];
  109.         }
  110.         {
  111.             //d[2]-d[0]
  112.             int cur=d[2]-d[0];
  113.             if (cur%4==1){
  114.                 if (v[2]>1)
  115.                     v[3]=(v[3]==-1||v[2]+cur<v[3])?v[2]+cur:v[3];
  116.                 if (v[1]>1)
  117.                     v[2]=(v[2]==-1||v[1]+cur<v[2])?v[1]+cur:v[2];
  118.             }
  119.             if (cur%4==2){
  120.                 if (v[1]>1)
  121.                     v[3]=(v[3]==-1||v[1]+cur<v[3])?v[1]+cur:v[3];
  122.             }
  123.             v[cur%4]=(v[cur%4]==-1||cur<v[cur%4])?cur:v[cur%4];
  124.  
  125.         }
  126.         }
  127.  
  128.     v[0]=0;
  129.      //for (int i=1;i<=3;++i)
  130.        // cout << v[i] << ' ';
  131.     cout << ans-v[ans%4];
  132.     return 0;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement