Mai intai trebuie sa te autentifici.
Cod sursa(job #69439)
Utilizator | Data | 3 iulie 2007 00:22:43 | |
---|---|---|---|
Problema | Loto | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.01 kb |
#include<fstream>
using namespace std;
long a[100],T,x;
ofstream fout("loto.out");
short n;
void citire(){
ifstream fin("loto.in");
fin>>n>>T;
for (short i=0;i<n;i++)
fin>>a[i];
fin.close();
}
void bule(){
short ok=0,p=n;
while(ok==0){
ok=1;
p--;
for (short i=0;i<p;i++)
if (a[i]>a[i+1]){
long aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
ok=0;}
}
}
int caut(long x, int n){
int st=0,dr=n;
while (st<=dr){
int m=(st+dr)/2;
if (a[m]==x)
return 1;
if (a[m]<x)
st=m+1;
dr=m-1;
}
return 0;
}
int parc(){
long S;
for (short i=n-1;i>=0;i--)
for (short j=i;j>=0;j--)
for (short k=j;k>=0;k--)
for (short l=k;l>=0;l--)
for (short o=l;o>=0;o--){
x=T-a[i]-a[j]-a[k]-a[l]-a[o];
if (caut(x, o)){
fout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<a[l]<<" "<<a[o]<<" "<<x<<"\n";
return 1;
}
}
return 0;
}
int main(){
citire();
bule();
if (!parc())
fout<<"-1";
fout.close();
return 0;
}