Pagini recente » Cod sursa (job #2396350) | Cod sursa (job #3153936) | Cod sursa (job #788182) | Cod sursa (job #981134) | Cod sursa (job #1009188)
#include<iostream>
#include<fstream>
#include<map>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> sum;
vector<int> v;
vector<int>::iterator it, jt, kt;
ifstream f("loto.in");
ofstream g("loto.out");
int r, n, S, a, fol[1000000][3], nr;
struct suma{
int a, b, c, si;
} sm[1000000];
bool comp(suma a, suma b){
if(a.si>b.si) return 0;
return 1;
}
int cautare(int a, int b, int val){
int m=(a+b)/2;
if(sm[m].si==val) return m;
else{
if(a==b) return 0;
else{
if(sm[m].si>val) cautare(a, m, val);
else cautare(m+1,b,val);}
}
}
void afisare(int i, int j){
g<<sm[i].a<<' '<<sm[i].b<<' '<<sm[i].c<<' '<<sm[j].a<<' '<<sm[j].b<<' '<<sm[j].c<<'\n';
}
int main()
{
f>>n>>S;
for(int i=0; i<n; ++i){f>>a; v.push_back(a);}
for(it=v.begin(); it!=v.end(); ++it)
for(jt=v.begin(); jt!=v.end(); ++jt)
for(kt=v.begin(); kt!=v.end(); ++kt){
//sum.push_back(*it+*jt+*kt); fol[nr][0]=*it; fol[nr][1]=*jt; fol[nr][2]=*kt; ++nr;
sm[nr].si=*it+*jt+*kt;// cout<<sm[i].si;
sm[nr].a=*it;
sm[nr].b=*jt;
sm[nr].c=*kt;
++nr;
}
sort(sm, sm+nr, comp);
//cout<<cautare(0, nr-1, 10)<<' ';
for(int i=0; i<nr; ++i){
a=cautare(0, nr, S-sm[i].si);
if(a) {afisare(i, a); break;}
}
//for(int i=0; i<n*n*n; ++i) cout<<sm[i].si;
g.close();
return 0;
}