Cod sursa(job #428491)

Utilizator pdaniel93Popescu Daniel pdaniel93 Data 29 martie 2010 12:12:49
Problema Loto Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
ifstream fin ("loto.in");
ofstream fout("loto.out");

map <int, int> viz;
vector<int> v;
int n,S,i,j,k,nr,S1,S2,ok,x;

int main()
{
fin>>n>>S;
for (i=0; i<n; i++)
{
  fin>>x;
  v.push_back(x);
}
ok=1;
for (i=0; i<n; i++)
  for (j=0; j<n; j++)
    for (k=0; k<n; k++)
      viz[v[i]+v[j]+v[k]] = 1;
    
for (i=0; i<n&&ok==1; i++)
  for (j=0; j<n&&ok==1; j++)
    for (k=0; k<n&&ok==1; k++)
          if (viz[S-v[i]-v[j]-v[k]] == 1)
            {
            S1=v[i]+v[j]+v[k];
            fout<<v[i]<<' '<<v[j]<<' '<<v[k]<<' ';
            S2=S-v[i]-v[j]-v[k];
            ok=0;
            break;
            }
if (ok==0)
  {
  ok=1;
  for (i=0; i<n&&ok==1; i++)
  for (j=0; j<n&&ok==1; j++)
    for (k=0; k<n&&ok==1; k++)
      if (v[i]+v[j]+v[k] == S2)
          {
          fout<<v[i]<<' '<<v[j]<<' '<<v[k]<<'\n';
          ok=0;
          break;
          }
  }
  else
  fout<<-1<<'\n';
fin.close();
fout.close();
return 0;
}