Cod sursa(job #2194477)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 13 aprilie 2018 16:13:48
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int n,s,S,v[101],h[4],c,i,j,k,l,ok,p,mid,st,dr;
int main()
{   f>>n>>s;
    for(i=1;i<=n;i++)
        f>>v[i];
    sort(v+1,v+n+1);
    for(i=1;i<=n;i++)
    for(j=i;j<=n;j++)
    for(k=j;k<=n;k++){
        ok=0;
        S=s-v[i]-v[j]-v[k];
        for(l=3;l>=1;l--){
            c=S/l;p=0;
            st=1;dr=n;
            while(st<=dr){
                mid=(st+dr)/2;
                if(v[mid]<c)
                    st=mid+1;
                else
                    if(v[mid]>c)
                        dr=mid-1;
                else{
                    p=mid;
                    break;
                }
            }
            if(p==0){
                ok=1;
                break;
            }
            else
                S=S-c;
                h[l]=p;
        }
        if(ok==1)
            continue;
        else{
            g<<v[i]<<' '<<v[j]<<' '<<v[k]<<' ';
            for(l=1;l<=3;l++)
                g<<h[l]<<' ';
            return 0;
        }
    }
    g<<-1;
    return 0;
}