Cod sursa(job #2450302)

Utilizator eutu33eu tu el ea eutu33 Data 22 august 2019 16:34:40
Problema Loto Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

struct sum
{
    int a, b, c;
    int sum = 600000002;
} sums[1000005];

bool sorter(sum a, sum b)
{
    return a.sum < b.sum;
}

bool SortSums(sum a, sum b);

int main()
{
    ifstream in ("loto.in");
    ofstream out ("loto.out");
    int n,s,r=0;
    in>>n>>s;
    int vec[n];
    for(int i=0; i<n; i++)
        in>>vec[i];
    for(int q=0; q<n; q++)
        for(int w=0; w<n; w++)
            for(int e=w; e<n; e++)
            {
                sum d;
                d.a = vec[q];
                d.b = vec[w];
                d.c = vec[e];
                d.sum = d.a + d.b + d.c;
                sums[r]=d;
                r++;
            }
    sort(sums,sums+r,sorter);
    for(int i=0; i<r; i++)
    {
        int t = s - sums[i].sum;
        int right=r,left=0;
        while(left<=right)
        {
            int mid = (right + left) / 2;
            if(sums[mid].sum == t)
            {
                left = mid;
                break;
            }
            else if(sums[mid].sum<t)
                left = mid+1;
            else right = mid-1;
        }
        if(sums[left].sum == t)
        {
            out<<sums[i].a<<" "<<sums[i].b<<" "<<sums[i].c<<" "<<sums[left].a<<" "<<sums[left].b<<" "<<sums[left].c;
            return 0;
        }
    }
    out<<"-1";
    return 0;
}