Pagini recente » Istoria paginii runda/oni_gim2016 | Cod sursa (job #2253156) | Cod sursa (job #2652328) | Cod sursa (job #2409335) | Cod sursa (job #497407)
Cod sursa(job #497407)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE *f=fopen("loto.in","r");
FILE *g=fopen("loto.out","w");
struct loto{
int s,x,y,z;
}b[1000001];
int n,s,i,p,u,m,j,a[101],k,ma;
int cmp(loto a,loto b){
if (a.s<=b.s)
return 1;
return 0;
}
int main(){
fscanf(f,"%d %d",&n,&s);
for (i=1;i<=n;i++)
fscanf(f,"%d",&a[i]);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++){
ma++;
b[ma].s=a[i]+a[j]+a[k];
b[ma].x=i;
b[ma].y=j;
b[ma].z=k;
}
sort (b+1,b+ma+1,cmp);
for(i=1;i<=ma;i++){
p=1;
u=ma;
while(p<=u){
m=(p+u)/2;
if (s-b[i].s==b[m].s){
fprintf(g,"%d %d %d %d %d %d",b[i].x,b[i].y,b[i].z,b[m].x,b[m].y,b[m].z);
return 0;
}
else
if (s-b[i].s<b[m].s)
u=m-1;
else
p=m+1;
}
}
fprintf(g,"-1");
return 0;
}