T3000

Untitled

Mar 29th, 2022
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.33 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. using ll = long long;
  5.  
  6. int main()
  7. {
  8.     ll n, m;
  9.     ll c = 1;
  10.     while (cin >> n)
  11.     {
  12.  
  13.         vector<ll> z1(n);
  14.  
  15.         vector<ll> z3;
  16.         for (int i = 0; i < n; i++)
  17.         {
  18.             cin >> z1.at(i);
  19.         }
  20.         for (int i = 0; i < n; i++)
  21.         {
  22.  
  23.             for (int j = 0; j < n; j++)
  24.             {
  25.                 if (i != j)
  26.                 {
  27.                     ll x = z1.at(j) + z1.at(i);
  28.                     z3.push_back(x);
  29.                 }
  30.             }
  31.         }
  32.         cin >> m;
  33.  
  34.         vector<ll> z2(m);
  35.         for (int i = 0; i < m; i++)
  36.         {
  37.             cin >> z2.at(i);
  38.         }
  39.         sort(z3.begin(), z3.end());
  40.         cout << "Case " << c << ':' << endl;
  41.         c += 1;
  42.         for (int i = 0; i < m; i++)
  43.         {
  44.             ll w = lower_bound(z3.begin(), z3.end(), z2.at(i)) - z3.begin();
  45.             if (w >= z3.size())
  46.             {
  47.                 w = z3.size() - 1;
  48.             }
  49.             if (w > 0)
  50.             {
  51.  
  52.                 if (abs(z3.at(w) - z2.at(i)) > abs(z3.at(w - 1) - z2.at(i)))
  53.                 {
  54.                     w = w - 1;
  55.                 }
  56.             }
  57.             cout << "Closest sum to " << z2.at(i) << " is " << z3.at(w) << '.' << endl;
  58.         }
  59.     }
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment