Cod sursa(job #1702443)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 15 mai 2016 11:10:47
Problema Loto Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>
using namespace std;

const int MOD = 9997;

struct I3 {
    int a, b, c;

    inline int sum(void) {
        return a+b+c;
    }
};

FILE *fi = fopen("loto.in", "r");
FILE *fo = fopen("loto.out", "w");

int n, s, v[105];
vector<I3> h[MOD];


inline void search(I3 val) {
    int p = (s-val.sum()) % MOD;
    for(int i=0; i<h[p].size(); ++i) {
        if(h[p][i].sum()==s-val.sum()) {
            fprintf(fo,"%d %d %d %d %d %d\n",h[p][i].a,h[p][i].b,h[p][i].c,val.a,val.b,val.c);
            exit(0);
        }
    }
}

inline void insert(I3 arg) {
    h[arg.sum()%MOD].push_back(arg);
}

int main(void) {
    fscanf(fi,"%d%d",&n,&s);
    for(int i=1; i<=n; ++i)
        fscanf(fi,"%d",&v[i]);

    for(int i=1; i<=n; ++i) {
        for(int j=i; j<=n; ++j) {
            for(int k=j; k<=n; ++k) {
                insert({v[i],v[j],v[k]});
                search({v[i],v[j],v[k]});
            }
        }
    }

    fprintf(fo,"-1\n");

    fclose(fi);
    fclose(fo);
    return 0;
}