Cod sursa(job #2094212)

Utilizator arcoC. Nicolae arco Data 25 decembrie 2017 12:39:52
Problema Loto Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 1.88 kb
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <stdint.h>

void bubble_sort(uint64_t *vector, uint64_t size);

int main(void)
{
	FILE *in = fopen("loto.in", "r");
	FILE *out = fopen("loto.out", "w");
	if(in != NULL && out != NULL)
	{
		uint64_t n, s, vector[110];
		fscanf(in, "%llu%*c%llu%*c", &n, &s);
		uint64_t i = 0;
		for(; i < n; i++)
		{
			uint64_t t;
			fscanf(in, "%llu%*c", &t);
			vector[i] = t;
		}
		bool found = false;

		i = 0;
		int j = 0, a = 0, b = 0, c = 0, d = 0;
		for(; i < n; i++)
		{
			if(vector[i] < s)
			{
				uint64_t cs = vector[i];
				j = 0;
				for(; j < n; j++)
				{
					if((cs + vector[j]) <= s)
					{
						cs += vector[j];
						a = 0;
						for(; a < n; a++)
						{
							if((cs + vector[a]) <= s)
							{
								cs += vector[a];
								b = 0;
								for(; b < n; b++)
								{
									c = 0;
									for(; c < n; c++)
									{
										d = 0;
										for(; d < n; d++)
										{
											uint64_t sum = vector[i] + vector[j] + vector[a] + vector[b] + vector[c] + vector[d];
											if(sum == s)
											{
												fprintf(out, "%llu %llu %llu %llu %llu %llu\n", vector[i], vector[j], vector[a], vector[b], vector[c], vector[d]);
												found = true;
												goto end;
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
		end:
			;

		if(!found)
		{
			fprintf(out, "-1\n");
		}

		fclose(in);
		fclose(out);
	}
	else
	{
		printf("Error\n");
	}

	return 0;
}

void bubble_sort(uint64_t *vector, uint64_t size)
{
	bool end = false;
	while(!end)
	{
		end = true;
		uint64_t i = 0;
		for(; i < size - 1; i++)
		{
			if(vector[i] > vector[i + 1])
			{
				uint64_t temp = vector[i];
				vector[i] = vector[i + 1];
				vector[i + 1] = temp;
				end = false;
			}
		}
	}
}