Pagini recente » Cod sursa (job #494073) | Cod sursa (job #404671) | Cod sursa (job #1377678) | Cod sursa (job #1394773) | Cod sursa (job #1761727)
#include<cstdio>
#include<map>
#include<vector>
#include<algorithm>
const unsigned int NMAX=100,MOD=647013;
unsigned int v[NMAX+1];
struct sol{unsigned int x[4];};
std::vector<std::pair<unsigned int,sol> > map[MOD];
void Add(unsigned int val,sol x)
{
unsigned int r=val%MOD;
map[r].push_back(std::make_pair(val,x));
}
sol Get_Val(unsigned int val)
{
unsigned int r=val%MOD;
for(int i=0;i<map[r].size();i++)
if(map[r][i].first==val)
return map[r][i].second;
sol nu;
nu.x[0]=-1;
}
int main()
{
FILE *file=fopen("loto.in","r");
unsigned int n,s;
fscanf(file,"%u %u ",&n,&s);
for(unsigned int i=1;i<=n;i++)
fscanf(file,"%u ",&v[i]);
fclose(file);
for(unsigned int x1=1;x1<=n;x1++)
{
for(unsigned int x2=1;x2<=n;x2++)
{
for(unsigned int x3=1;x3<=n;x3++)
{
sol a;
a.x[0]=0;
a.x[1]=x1,a.x[2]=x2,a.x[3]=x3;
Add(v[x1]+v[x2]+v[x3],a);
}
}
}
file=fopen("loto.out","w");
std::vector<unsigned int> rasp;
for(unsigned int x1=1;x1<=n;x1++)
{
for(unsigned int x2=1;x2<=n;x2++)
{
for(unsigned int x3=1;x3<=n;x3++)
{
sol a=Get_Val(s-(v[x1]+v[x2]+v[x3]));
if(a.x[0]==0)
{
rasp.push_back(x1);
rasp.push_back(x2);
rasp.push_back(x3);
for(unsigned int i=1;i<=3;i++)
rasp.push_back(a.x[i]);
std::sort(rasp.begin(),rasp.end());
for(unsigned int i=0;i<rasp.size();i++)
fprintf(file,"%u ",rasp[i]);
fclose(file);
return 0;
}
}
}
}
fprintf(file,"-1\n");
fclose(file);
return 0;
}