Pagini recente » Cod sursa (job #558766) | Monitorul de evaluare | Cod sursa (job #1499864) | Istoria paginii utilizator/belginstirbu | Cod sursa (job #1761566)
#include<cstdio>
#include<map>
#include<algorithm>
const unsigned int NMAX=100;
unsigned int v[NMAX+1];
struct sol{unsigned int x[4];};
std::map<unsigned int,sol> map;
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[1]=x1,a.x[2]=x2,a.x[3]=x3;
map[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++)
{
if(map.count(s-(v[x1]+v[x2]+v[x3])))
{
rasp.push_back(v[x1]);
rasp.push_back(v[x2]);
rasp.push_back(v[x3]);
for(unsigned int i=1;i<=3;i++)
rasp.push_back(v[map[s-(v[x1]+v[x2]+v[x3])].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;
}