Pagini recente » Cod sursa (job #1586824) | Cod sursa (job #1667698) | Cod sursa (job #1734419) | Cod sursa (job #1467796) | Cod sursa (job #2433463)
#include <bits/stdc++.h>
using namespace std;
struct bilet {
int nr1, nr2, nr3, s;
};
ifstream f("loto.in");
ofstream g("loto.out");
bool mycmp(bilet a, bilet b) {
if(a.s == b.s) {
return a.nr1 < b.nr1;
}
return a.s < b.s;
}
vector<bilet> s;
int v[101];
int n, S;
int cautBin(int element, int st, int dr) {
if(st > dr) {
return -1;
}
int mij = st + dr;
mij = mij / 2;
if(element == s[mij].s) {
return mij;
}
if(element < s[mij].s) {
return cautBin(element, st, mij - 1);
}
if(element > s[mij].s) {
return cautBin(element, mij + 1, dr);
}
}
int main() {
f >> n >> S;
for(int i = 0; i < n; i++) {
f >> v[i];
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
for(int k = 0; k < n; k++) {
bilet aux;
aux.s = v[i] + v[j] + v[k];
aux.nr1 = v[i];
aux.nr2 = v[j];
aux.nr3 = v[k];
s.push_back(aux);
}
}
}
sort(s.begin(), s.end(), mycmp);
for(int i = 0; i < s.size() ; i++) {
int poz;
poz = cautBin(S - s[i].s, 0, s.size());
if(poz != -1) {
g << s[i].nr1 << " " << s[i].nr2 << " " << s[i].nr3 << " " << s[poz].nr1 << " " << s[poz].nr2 << " " << s[poz].nr3;
return 0;
}
}
g << -1;
return 0;
}