Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- using ll = long long;
- using ull = unsigned long long;
- using ld = long double;
- using vll = vector<ll>;
- using pll = pair<ll, ll>;
- using mll = map<ll,ll>;
- using sll = set<ll>;
- #define iv(v) for(auto &i:v) cin >> i
- #define ov(v) for(auto &i:v) cout << i << " "
- #define all(v) v.begin(), v.end()
- #define rall(v) v.rbegin(), v.rend()
- #define YES cout << "YES\n"
- #define NO cout << "NO\n"
- #define Bismillah ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
- const ll MOD = 1e9 + 7;
- ll add(ll a, ll b) {return ((a % MOD) + (b % MOD)) % MOD;}
- ll mul(ll a, ll b) {return ((a % MOD) * (b % MOD)) % MOD;}
- ll sub(ll a, ll b) {return (((a - b) % MOD) + MOD) % MOD;}
- ll modExp(ll a, ll b) {
- if (b <= 0) return 1;
- ll ret = modExp(a * a % MOD, b / 2);
- if (b % 2) ret = ret * a % MOD;
- return ret;
- }
- ll inverse(ll b) {return modExp(b, MOD - 2);}
- ll divv(ll a, ll b) {return ((a % MOD) * (inverse(b) % MOD)) % MOD;}
- void solve() {
- ll n, x;
- cin >>n>>x;
- vll v(n);
- iv(v);
- map<ll,vector<ll>> m;
- for (int i=0; i<n; i++) m[v[i]].push_back(i);
- sort(all(v));
- for (int i=0; i<n; i++) {
- for (int j=i+1; j<n; j++) {
- ll s=x-v[i]-v[j];
- auto it= std::lower_bound(v.begin(), v.end(),s);
- if (*it==s) {
- if (s==v[i] && m[v[i]].size()==1) {
- continue;
- }
- if (s==v[j] && m[v[j]].size()==1) {
- continue;
- }
- if (s==v[i] && v[i]==v[j] && m[v[i]].size()==2) {
- continue;
- }
- cout << m[v[i]].back()+1 << ' ' ;
- m[v[i]].pop_back();
- cout << m[v[j]].back()+1 << ' ';
- m[v[j]].pop_back();
- cout << m[s].back()+1 << endl;
- return;
- }
- }
- }
- cout << -1 << endl;
- }
- int main() {
- Bismillah
- ll t=1;
- // cin >> t;
- while (t--) {
- solve();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment