Pagini recente » Cod sursa (job #2445448) | Cod sursa (job #628890) | Cod sursa (job #640849) | Cod sursa (job #2257592) | Cod sursa (job #529469)
Cod sursa(job #529469)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
ifstream aa("loto.in");
ofstream ss("loto.out");
int n,s,i,j,k,x[102],y[1000001],z[3][1000001],qq[8],nr,pas;
int cmp(int a,int b) {
return a<b;
}
void citire();
void caut();
int main() {
citire();
for (i=1;i<=nr;++i) {
caut();
if (y[j]+y[i]==s) {
qq[1]=z[0][i]; qq[2]=z[1][i]; qq[3]=z[2][i]; qq[4]=z[0][j]; qq[5]=z[1][j]; qq[6]=z[2][j];
sort(&qq[1],&qq[7],cmp);
for (i=1;i<=6;++i)
ss << qq[i] << " ";
return 0;
}
}
ss << "-1";
return 0;
}
void caut() {
pas=1<<18;
for (j=0;pas>0;pas>>=1) {
while (j+pas<=nr && y[j+pas]+y[i]<=s)
j+=pas;
}
}
void citire() {
aa >> n >> s;
for (i=1;i<=n;++i) {
aa >> x[i];
}
sort(&x[1],&x[n+1],cmp);
for (i=1;i<=n;++i) {
for (j=1;j<=n;++j) {
for (k=1;k<=n;++k) {
y[++nr]=x[i]+x[j]+x[k];
z[0][nr]=i; z[1][nr]=j; z[2][nr]=k;
}
}
}
}