Pagini recente » Cod sursa (job #3263565) | Cod sursa (job #1420353) | Cod sursa (job #765253) | Cod sursa (job #2454306) | Cod sursa (job #2420463)
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct st{
int s;
int a;
int b;
int c;};
int n,a[101],sum,i,j,k,l,str,dr,mij,x;
st s[10001];
int main(){
fin>>n>>sum;
for(i=1;i<=n;++i)
fin>>a[i];
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(k=j;k<=n;++k){
++l;
s[l].s=a[i]+a[j]+a[k];
s[l].a=i;
s[l].b=j;
s[l].c=k;
}
for(i=1;i<l;++i)
for(j=i;j<=l;++j){
if(s[i].s>s[j].s){int aux;aux=s[i].s;s[i].s=s[j].s;s[j].s=aux;}
}
for(i=1;i<=l;++i){
x=sum-s[i].s;
str=1;
dr=l;
while(str<=dr){
mij=str+dr/2; // sau mij=st+(dr-st)/2
if(s[mij].s==x){
fout<<s[mij].a<<" "<<s[mij].b<<" "<<s[mij].c<<" "<<s[i].a<<" "<<s[i].b<<" "<<s[i].c<<" ";
return 0; //am gasit mij favorabil si termin ;
}
if(s[mij].s>x)
str=mij+1;
if(s[mij].s<x)
dr=mij-1;
}
}
}