Pagini recente » Cod sursa (job #1055457) | Cod sursa (job #1896096) | Cod sursa (job #1078123) | Cod sursa (job #2864374) | Cod sursa (job #1689459)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
long long sum,n,v[1005],i,j,h,st,dr,mid,ok,k;
pair< pair<long long , long long> , pair<long long , long long> > s[1005];
int main ()
{
fin>>n>>sum;
for(i=1;i<=n;i++)
fin>>v[i];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(h=1;h<=n;h++)
{
s[++k].first.first=v[i]+v[j]+v[h];
s[k].first.second=i;
s[k].second.first=j;
s[k].second.second=h;
}
sort(s+1, s+1+k);
for(i=1;i<=k;i++)
{
st=1;
dr=k;
while(st<=dr)
{
mid=(st+dr)/2;
if(s[mid].first.first+s[i].first.first==sum)
{
fout<<s[i].first.second<<" ";
fout<<s[i].second.first<<" ";
fout<<s[i].second.second<<" ";
fout<<s[mid].first.second<<" ";
fout<<s[mid].second.first<<" ";
fout<<s[mid].second.second;
ok=1;
break;
}
else
if(s[mid].first.first+s[i].first.first>sum)
dr=mid-1;
else
st=mid+1;
}
if(ok==1)
break;
}
if(ok==0)
fout<<-1;
fin.close();
fout.close();
return 0;
}