Creative Commons License Foxbond's Repo

/**(c) 2016 Michał (Foxbond) Chraniuk */
#include <stdio.h>
#include <stdlib.h>
#include <ctime>

int main() {
	srand(time(NULL));

	const int size = 20;

	int czapki[size];
	int widok[size];
	int back[size];
	int odp[size];

	/*
	for (int i = 0;i < size;i++) {
		czapki[i] = widok[i] = odp[i] = back[i] = 3;
	}
	*/

	printf("Wiezniowie:\n");

	for (int i = 0;i < size;i++) {
		czapki[i] = rand() % 2;
		printf("%d ", czapki[i]);
	}
	

	for (int i = 0;i < size;i++) {
		int temp = 0;
		for (int y = i+1;y < size;y++) {
			if (czapki[y] == 0) temp++;
		}
		widok[i] = temp % 2;
		if (i == 0) {
			odp[i] = widok[i];
			continue;
		}

		if (i == 1) {
			odp[i] = (odp[i-1] == widok[i]) ? 1 : 0;
			continue;
		}
		

		temp = 0;
		for (int y = 1;y < i;y++) {
			if (odp[y] == 0) {
				temp++;
			}
		}

		back[i] = temp % 2;


		if (odp[0] == 0) {
			if (back[i] != 0) {
				if (widok[i] == 0) {
					odp[i] = 0;
				}
				else {
					odp[i] = 1;
				}
			}
			else {
				if (widok[i] == 0) {
					odp[i] = 1;
				}
				else {
					odp[i] = 0;
				}
			}
		}
		else {
			if (back[i] != 0) {
				if (widok[i] == 0) {
					odp[i] = 1;
				}
				else {
					odp[i] = 0;
				}
			}
			else {
				if (widok[i] == 0) {
					odp[i] = 0;
				}
				else {
					odp[i] = 1;
				}
			}
		}
		

	}

	printf("\nOdpowiedzi:\n");
	int saved = 0;
	for (int i = 0;i < size;i++) {
		printf("%d ", odp[i]);
		if (czapki[i] == odp[i]) saved++;
	}

	printf("\nUratowanych wiezniow: %d\n", saved);

	return 0;
}

> Back