Cod sursa(job #2556513)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 24 februarie 2020 23:01:52
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("loto.in");
ofstream fout("loto.out");

int n,s,v[105],nr=0;

struct pct{
 int a,b,c,t;
} pt[1000005];

bool cmp(pct x,pct y)
 {
  return x.t<y.t;
 }
int main()
{
f>>n>>s;
for(int i=1;i<=n;i++)
 f>>v[i];

sort(v+1,v+n+1);

for(int i=1;i<=n;i++)
 for(int j=i;j<=n;j++)
  for(int z=j;z<=n;z++)
 {
  nr++;
  pt[nr].a=v[i];
  pt[nr].b=v[j];
  pt[nr].c=v[z];
  pt[nr].t=v[i]+v[j]+v[z];
 }

sort(pt+1,pt+nr+1,cmp);
if(2*pt[nr].t<s||2*pt[1].t>s) {
                       g<<"-1";
                       return 0;
                     }
for(int i=1;i<=n;i++)
 {
  int st=1,dr=nr,rasp=0,mid;
  while(st<=dr)
   {
    mid=(st+dr)/2;
    if(s-pt[mid].t>pt[i].t) st=mid+1;
    else if(s-pt[mid].t<pt[i].t) dr=mid-1;
         else {
               g<<pt[i].a<<" "<<pt[i].b<<" "<<pt[i].c<<" "<<pt[mid].a<<" "<<pt[mid].b<<" "<<pt[mid].c;
               return 0;
              }
   }
 }
}