Untitled

 avatar
unknown
plain_text
2 years ago
962 B
10
Indexable
void solution()
{
    vector<pair<ll,ll>>vop;
    ll n,sum;
    cin >> n >> sum;
    for(ll i=0; i<n; i++)
    {
        ll x;
        cin >> x;
        vop.pb({x,i+1});
    }
    sort(vop.begin(),vop.end());
    map<vector<ll>,int>mpv;
    for(ll i=0; i<vop.size(); i++)
    {
        ll x = i;
        ll y = i+1;
        ll z = n-1;
 
        while(y < z)
        {
            ll sum2 = vop[x].f + vop[y].f + vop[z].f;
 
            if(sum2 == sum)
            {
                vector<ll>temp;
                temp.pb(vop[x].f);
                temp.pb(vop[y].f);
                temp.pb(vop[z].f);
                if(mpv[temp] == 0)
                {
                    print(temp);
                    mpv[temp] = 1;
                }
            }
            if(sum2 < sum)
            {
               y++;
            }
            else
            {
               z--; 
            }
        }
    }
}
Editor is loading...