lina_os

Untitled

Oct 4th, 2025 (edited)
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.08 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4.  
  5. using ll = long long;
  6. using ull = unsigned long long;
  7. using ld = long double;
  8. using vll = vector<ll>;
  9. using pll = pair<ll, ll>;
  10. using mll = map<ll,ll>;
  11. using sll = set<ll>;
  12. #define iv(v) for(auto &i:v) cin >> i
  13. #define ov(v) for(auto &i:v) cout << i << " "
  14. #define all(v) v.begin(), v.end()
  15. #define rall(v) v.rbegin(), v.rend()
  16. #define YES cout << "YES\n"
  17. #define NO  cout << "NO\n"
  18.  
  19. #define Bismillah ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  20.  
  21. const ll MOD = 1e9 + 7;
  22.  
  23. ll add(ll a, ll b) {return ((a % MOD) + (b % MOD)) % MOD;}
  24. ll mul(ll a, ll b) {return ((a % MOD) * (b % MOD)) % MOD;}
  25. ll sub(ll a, ll b) {return (((a - b) % MOD) + MOD) % MOD;}
  26. ll modExp(ll a, ll b) {
  27.     if (b <= 0) return 1;
  28.     ll ret = modExp(a * a % MOD, b / 2);
  29.     if (b % 2) ret = ret * a % MOD;
  30.     return ret;
  31. }
  32. ll inverse(ll b) {return modExp(b, MOD - 2);}
  33. ll divv(ll a, ll b) {return ((a % MOD) * (inverse(b) % MOD)) % MOD;}
  34.  
  35.  
  36. void solve() {
  37.     ll n, x;
  38.     cin >>n>>x;
  39.     vll v(n);
  40.     iv(v);
  41.     map<ll,vector<ll>> m;
  42.     for (int i=0; i<n; i++) m[v[i]].push_back(i);
  43.     sort(all(v));
  44.     for (int i=0; i<n; i++) {
  45.         for (int j=i+1; j<n; j++) {
  46.             ll s=x-v[i]-v[j];
  47.             auto it= std::lower_bound(v.begin(), v.end(),s);
  48.             if (*it==s) {
  49.                 if (s==v[i] && m[v[i]].size()==1) {
  50.                     continue;
  51.                 }
  52.                 if (s==v[j] && m[v[j]].size()==1) {
  53.                     continue;
  54.                 }
  55.                 if (s==v[i] && v[i]==v[j] && m[v[i]].size()==2) {
  56.                     continue;
  57.                 }
  58.                 cout << m[v[i]].back()+1 << ' ' ;
  59.                 m[v[i]].pop_back();
  60.                 cout << m[v[j]].back()+1 << ' ';
  61.                 m[v[j]].pop_back();
  62.                 cout << m[s].back()+1 << endl;
  63.                 return;
  64.             }
  65.         }
  66.     }
  67.     cout << -1 << endl;
  68. }
  69.  
  70. int main() {
  71.     Bismillah
  72.     ll t=1;
  73. //    cin >> t;
  74.     while (t--) {
  75.         solve();
  76.     }
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment