Pagini recente » Cod sursa (job #676210) | Cod sursa (job #2650343) | Cod sursa (job #2586510) | Cod sursa (job #842588) | Cod sursa (job #1689457)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
long long sum,n,v[105],i,j,h,st,dr,mid,ok,k;
pair< pair<long long , int> , pair<int , int> > s[105];
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;
}