Pagini recente » Cod sursa (job #1332181) | Cod sursa (job #2804893) | Cod sursa (job #2279402) | Cod sursa (job #1004909) | Cod sursa (job #591031)
Cod sursa(job #591031)
#include<fstream.h>
int n,i,j,k,s1,s2,s3,i1,i2,i3;
long s,v[101],y[101],t;
void merge(long v[101],int p,int q)
{int m=(p+q)/2,i,j,k;
if(p==q)
return;
merge(v,p,m);
merge(v,m+1,q);
for(i=p,j=m+1,k=p;i<=m||j<=q;)
if(j>q||(i<=m&&v[i]<v[j]))
y[k++]=v[i++];
else
y[k++]=v[j++];
for(i=p;i<=q;i++)
v[i]=y[i];}
int main()
{ifstream f("loto.in");
ofstream g("loto.out");
f>>n>>s;
for(i=1;i<=n;i++)
f>>v[i];
t=s;
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
{s1=s2=s3=n;
i1=i2=i3=0;
s=t-v[i]-v[j]-v[k];
for(;s1;s1>>=1)
{for(;s2;s2>>=1)
{for(;s3;s3>>=1)
if(i1+s1<=n&&i2+s2<=n&&i3+s3<=n)
if(v[i1+s1]+v[i2+s2]+v[i3+s3]<s)
{i1+=s1;
i2+=s2;
i3+=s3;}
else
if(v[i1+s1]+v[i2+s2]+v[i3+s3]==s)
{g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<v[i1+s1]<<" "<<v[i2+s2]<<" "<<v[i3+s3]<<"\n";
return 0;}}}}
g<<"-1";
f.close();
g.close();
return 0;}