Pagini recente » Cod sursa (job #484613) | Istoria paginii utilizator/milasan_adriana | Cod sursa (job #927974) | Cod sursa (job #2215312) | Cod sursa (job #1258612)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct comb{
int x,y,z;
int sum;
}a[100*100*100+1];
long long n,v[102],i,j,s,d,k,x,st,dr,m,b[7],y;
int cmp( const comb a, const comb b){
if(a.sum > b.sum)
return 1;
return 0;
}
int caut(int x){
int st=1;int dr=k;int m;
while(st<=dr){
m=(st+dr)>>1;
if(a[m].sum==x) return m;
if(a[m].sum<x) st=m+1;
else dr=m-1;
}
return st;
}
int main(){
fin>>n>>s;
for(i=1;i<=n;i++)
fin>>v[i];
sort(v+1,v+n+1);
for(i=1;i<=n;i++){
for(j=i;j<=n;j++){
for(d=j;d<=n;d++)
{
a[++k].x=i;
a[k].y=j;
a[k].z=d;
a[k].sum=v[i]+v[j]+v[d];
}
}
}
sort(a+1,a+k+1,cmp);
for(i=1;i<=k;i++){
if(a[i].sum<s){
y=caut(s-a[i].sum);
if(a[y].sum+a[i].sum==s){
fout<<a[i].x<<" ";
fout<<a[i].y<<" ";
fout<<a[i].z<<" ";
fout<<a[y].x<<" ";
fout<<a[y].y<<" ";
fout<<a[y].z<<" ";
return 0;
}
}
}
fout<<-1;
fin.close();fout.close();
return 0;
}