Pagini recente » Cod sursa (job #2785708) | Cod sursa (job #2468968) | Cod sursa (job #1736350) | Cod sursa (job #2052813) | Cod sursa (job #1523285)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,s,p,sum,ct=0,v[105];
bool da=0;
int cautbin(int val)
{
int step=(1<<18), start = 0;
for(;step;step>>=1)
{
int index=step+start;
if(index>n) continue;
if(v[index]<=val)
start=index;
}
return start;
}
struct adevarat
{
int suma,x,y,z;
};
adevarat v1[105];
bool comp(adevarat a,adevarat b)
{
if(a.suma>b.suma)
return 0;
else return 1;
}
int main(){
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
scanf("%d %d",&n,&s);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
for(int k=1;k<=n;++k)
{
ct++;
v1[ct].x=i;
v1[ct].y=j;
v1[ct].z=k;
}
}
}
sort(v1+1,v1+ct+1, comp);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
for(int k=1;k<=n;++k)
{
sum=i+j+k;
p=s-sum;
int da=cautbin(p);
if(da==p)
{
da=1;
printf("%d %d %d %d %d %d",i,j,k,v1[ct].x,v1[ct].y,v1[ct].z );
break;
}
}
}
}
if(da==0) printf("-1");
}