Cod sursa(job #1803259)

Utilizator stefanpiturStefan Alexandru Pitur stefanpitur Data 11 noiembrie 2016 10:17:12
Problema Loto Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <iostream>
#include <algorithm>

using namespace std;

int x,y,gata;
int v[101];
int sum[1000001];

void cauta(int contor, int s){
    int li=1;
    int ls=contor;
    int sp=0;
    while(!gata && li<=ls){
        sp=sum[li]+sum[ls];
        if(sp<s)
            li++;
        else if(sp>s)
            ls--;
        else
            gata=1;
    }
    x=sum[li];
    y=sum[ls];
}

int main()
{
    FILE *fin, *fout;
    int n,s,i,j,k,contor,suma,q,w,e,r,t,u;
    fin=fopen("loto.in","r");
    fout=fopen("loto.out","w");
    fscanf(fin,"%d %d",&n,&s);
    for(i=1;i<=n;i++)
        fscanf(fin,"%d",&v[i]);
    for(contor=0,i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            for(k=1;k<=n;k++)
                sum[contor++]=v[i]+v[j]+v[k];
    sort(sum,sum+contor);
    cauta(contor-1,s);
    if(x+y!=s && gata==0)
        fprintf(fout,"-1\n");
    else{
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                for(k=1;k<=n;k++){
                    suma=v[i]+v[j]+v[k];
                    if(suma==x){
                        q=v[i];
                        w=v[j];
                        e=v[k];
                    }
                    if(suma==y){
                        r=v[i];
                        t=v[j];
                        u=v[k];
                    }
                }
        fprintf(fout,"%d %d %d %d %d %d\n",q,w,e,r,t,u);
    }
    fclose(fin);
    fclose(fout);
    return 0;
}