Cod sursa(job #777680)

Utilizator oana_popfmi - pop oana oana_pop Data 13 august 2012 00:21:24
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <fstream>
#include <vector>
#define NMAX 110
#define MOD 666013

using namespace std;

ifstream f("loto.in");
ofstream g("loto.out");

int a[NMAX] , n,suma;

struct st
{ 
    int s,a,b,c;
}r;

vector<st>  H[MOD+100];

void solve(){
     int i , j , k , ok=0 , x, y;
     vector<st>:: iterator it;
     for(i=1; i<=n; ++i)
       for(j=i; j<=n; ++j)
         for(k=j; k<=n; ++k)
           if (a[i]+a[j]+a[k]<=suma){
                                     r.s=a[i]+a[j]+a[k]; r.a=a[i]; r.b=a[j]; r.c=a[k];
                                     x=r.s%MOD;
                                     H[x].push_back(r);
                                     x=suma-r.s;
                                     y=x%MOD;
                                     for(it=H[y].begin() ;it!=H[y].end(); ++it)
                                     if((*it).s==x)
                                                 {
                                                   g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<(*it).a<<" "<<(*it).b<<" "<<(*it).c<<"\n";
                                                   ok=1; i=n+1; j=n+1; k=n+1;
                                                   break;
                                                 }
                                     }
           if (!ok) g<<"-1";
}

int main()
{
    int i ;
    f>>n>>suma;
    for (i=1; i<=n ; i++) f>>a[i];
    solve();
    return 0;
}