Pagini recente » Cod sursa (job #1778753) | Cod sursa (job #2562026) | Cod sursa (job #658692) | Cod sursa (job #1997462) | Cod sursa (job #749427)
Cod sursa(job #749427)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ifstream f("loto.in");
ofstream g("loto.out");
int n, s, i, j, k, l, begin, end, mid, suma;
vector <int> val, v, a, b, c;
bool gasit=0;
f>>n>>s;
for(i=1; i<=n; i++) {
f>>k;
val.push_back(k);
}
for(i=0; i<val.size(); i++) {
for(j=i; j<val.size(); j++) {
for(k=j; k<val.size(); k++) {
v.push_back(val[i]+val[j]+val[k]);
a.push_back(val[i]);
b.push_back(val[j]);
c.push_back(val[k]);
}
}
}
for(i=0; i<val.size(); i++) {
for(j=i; j<val.size(); j++) {
for(k=j; k<val.size(); k++) {
if(!gasit) {
suma = val[i] + val[j] + val[k];
begin = -1;
end = n;
while(end-begin>1) {
mid = begin + (end-begin)/2;
if( suma + v[mid] > s ) end = mid;
else begin = mid;
}
if(v[end] + suma == s) {
g<<a[end]<<" "<<b[end]<<" "<<c[end]<<" "<<val[i]<<" "<<val[j]<<" "<<val[k]<<"\n";
gasit=1;
}
}
}
}
}
if(!gasit) g<<"-1\n";
f.close();
g.close();
return 0;
}