Pagini recente » Cod sursa (job #1402622) | Cod sursa (job #400647) | Cod sursa (job #123209) | Cod sursa (job #1973801) | Cod sursa (job #759696)
Cod sursa(job #759696)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
long long s;
long long a[102],b[1000007],suma;
int i,ii,j,k,n;
bool gasit (long long X ) {
int p,u,mid;
p=1;
u=k;
while(p<=u){
mid=(p+u)/2;
if(b[mid]==X)
return 1;
if(b[mid]<X)
p=mid+1;
else
u=mid-1;
}
return 0;
}
void afis (long long S) {
int i,ii,j;
for(i=1;i<=n;i++)
for(ii=i;ii<=n;ii++)
for(j=ii;j<=n;j++)
if(S==a[i]+a[ii]+a[j]){
g<<a[i]<<" "<<a[ii]<<" "<<a[j];
return ;
}
return ;
}
int main () {
f>>n>>suma;
for(i=1;i<=n;i++)
f>>a[i];
for(i=1;i<=n;i++)
for(ii=i;ii<=n;ii++)
for(j=ii;j<=n;j++)
b[++k]=a[i]+a[ii]+a[j];
sort(1+b,1+b+k);
for(i=1;i<=k;i++)
if(gasit(suma-b[i])) {
afis(b[i]);
g<<" ";
afis(suma-b[i]);
return 0;
}
g<<-1<<"\n";
return 0;
}