Cod sursa(job #1928885)
Utilizator | Data | 16 martie 2017 20:44:14 | |
---|---|---|---|
Problema | Loto | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.17 kb |
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
long long n,suma,sum,g,s[100001],v[1001],st,dr,mid,i,j,k,a,b,c,ok,da;
int main(){
in>>n>>suma;
for(i=1;i<=n;i++){
in>>v[i];
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
for(k=1;k<=n;k++){
g++;
s[g]=v[i]+v[k]+v[j];
}
}
}
sort(s+1,s+g+1);
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
for(k=1;k<=n;k++){
sum=suma-v[i]-v[j]-v[k];
st=1;
dr=g;
while(st<=dr){
mid=(st+dr)/2;
if(s[mid]<sum){
st=mid+1;
}
if(s[mid]>sum){
dr=mid-1;
}
if(s[mid]==sum){
ok=1;
break;
}
}
if(ok==1){
out<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
for(a=1;a<=n;a++){
for(b=1;b<=n;b++){
for(c=1;c<=n;c++){
if(v[a]+v[b]+v[c]==sum){
out<<v[a]<<" "<<v[b]<<" "<<v[c];
da=1;
break;
}
}
if(da==1){
break;
}
}
if(da==1){
break;
}
}
if(da==1){
break;
}
}
if(da==1){
break;
}
}
if(da==1){
break;
}
}
if(da==1){
break;
}
}
if(ok==0){
out<<-1;
}
return 0;
}