Pagini recente » Statistici UCV BARBULESCU DOBRE FERARU (UCV_Barbulescu_Dobre_Feraru) | Cod sursa (job #1191962) | Cod sursa (job #1243215) | Cod sursa (job #1757304) | Cod sursa (job #849182)
Cod sursa(job #849182)
#include <fstream>
#include<algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int a[103],c[1000003],i,j,n,s,p,q,m,k,sol;
bool CautaBin(int x){
int st=1,dr=m,mij;
while(st<=dr){
mij=(st+dr)/2;
if(x==c[mij])return true;
else
if(x<c[mij])dr=mij-1;
else st=mij+1;
}
return false;
}
void cauta(int x){
int i,j,k;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
for (k=1; k<=n; k++)
if(sol==a[i]+a[j]+a[k]){g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";return;}
}
int main()
{
f>>n>>s;
for (i=1; i<=n; i++)f>>a[i];
for (i=1; i<=n; i++)
for (j=i; j<=n; j++)
for (k=j; k<=n; k++)
c[++m]=a[i]+a[j]+a[k];
sort(c+1,c+m+1);
for (i=1; i<=m; i++)
if(CautaBin(s-c[i])){sol=c[i];break;}
if(sol==0)g<<-1;
else cauta(sol);cauta(s-sol);
g<<'\n';
return 0;
}