Pagini recente » Cod sursa (job #1698427) | Cod sursa (job #1977147) | Cod sursa (job #2801369) | Cod sursa (job #517716) | Cod sursa (job #2142857)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int n,a[101],nr,s;
struct structura {
int x,y,z;
};
structura v[1000001];
bool comp(structura a,structura b) {
if(a.x+a.y+a.z<b.x+b.y+b.z)return 1;
return 0;
}
int main() {
f>>n>>s;
for(int i=1; i<=n; i++) {
f>>a[i];
}
for(int i=1; i<=n; i++) {
for(int i2=i; i2<=n; i2++) {
for(int i3=i2; i3<=n; i3++) {
v[++nr].x=a[i];
v[nr].y=a[i2];
v[nr].z=a[i3];
}
}
}
sort(v+1, v+nr+1,comp);
//for(int i=1;i<=nr;i++)cout<<v[i].x<<" "<<v[i].y<<" "<<v[i].z<<"\n";
for(int i=1; i<=nr; i++) {
int st=1;
int dr=nr;
while(st!=dr) {
int mij=(st+dr)/2;
if(v[i].x+v[i].y+v[i].z+v[mij].x+v[mij].y+v[mij].z<s) {
st=mij+1;
} else {
dr=mij;
}
}
if(v[i].x+v[i].y+v[i].z+v[st].x+v[st].y+v[st].z==s) {
g<<v[i].x<<" "<<v[i].y<<" "<<v[i].z<<" "<<v[st].x<<" "<<v[st].y<<" "<<v[st].z<<'\n';
return 0;
}
}
g<<"-1"<<'\n';
return 0;
}