Pagini recente » Monitorul de evaluare | Cod sursa (job #1777957) | Cod sursa (job #907717) | Cod sursa (job #703392) | Cod sursa (job #194815)
Cod sursa(job #194815)
#include<stdio.h>
#include<algorithm>
using namespace std;
int m,S,v[105];
struct suma {int s,a,b,c;}s[1000001];
int n,i,j,l;
int cmp(suma a,suma b){
return a.s<b.s;
}
int main(){
FILE *f=fopen("loto.in","r");
fscanf(f,"%d %d",&n,&S);
for(i=1;i<=n;i++)
fscanf(f,"%d",v+i);
fclose(f);
int y;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
for(l=1;l<=n;l++){
y=v[i]+v[j]+v[l];
if(y<=S){
m++;
s[m].s=y;
s[m].a=v[i];
s[m].b=v[j];
s[m].c=v[l];
}
}
}
}
sort(s+1,s+m+1,cmp);
int sol,p,u,mij;
FILE *g=fopen("loto.out","w");
p=1;
u=m;
while(p<=u){
if(s[p].s+s[u].s==S){
fprintf(g,"%d %d %d %d %d %d",s[u].a,s[u].b,s[u].c,s[p].a,s[p].b,s[p].c);
return 0;
}
else{
if(s[p].s+s[u].s>S)
u--;
else
p++;
}
}
fprintf(g,"%d",-1);
fclose(g);
return 0;
}