Cod sursa(job #1514402)

Utilizator MAlexandruMatei Alexandru MAlexandru Data 31 octombrie 2015 10:10:45
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <stdio.h>
#include <algorithm>

FILE*fin=fopen("loto.in","r");
FILE*fout=fopen("loto.out","w");
using namespace std;

struct sum{
int x,y,z,s;
};

int compare(sum a,sum b)
{
  if (a.s<b.s)return 1;
  else return 0;
};
int n,s,i,k,j,y,a[101],x,vs[51],nr,x1,x2,y1,y2,z1,z2;
sum v[101];
int main()
{
    fscanf (fin, "%d%d", &n , &s);
    y=1;
    for (i=1;i<=n;i++)fscanf (fin,"%d",&a[i]);
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
            for (k=1;k<=n;k++)
            {
            v[y].x=i;
            v[y].y=j;
            v[y].z=k;
            v[y].s=i+j+k;
            vs[y]=v[y].s;
            y++;
            }
    sort (v+1,v+y,compare);
    n=y;y=1;
    while (y<=n)
    {
    nr=s-v[y].s;
    x=upper_bound(vs+1,vs+n,nr)-vs-1;
    if (v[x].s==s-v[y].s)break;
    y++;
    }
    x2=v[x].x;y2=v[x].y;z2=v[x].z;x1=v[y].x;y1=v[y].y;z1=v[y].z;
    if (y!=n+1)fprintf (fout , "%d %d %d %d %d %d \n", x1,y1,z1,x2,y2,z2 );
    else fscanf (fout,"-1 \n");
    fclose(fin);fclose(fout);
    return 0;
}