Google Code Jam. Magic Trick

Rate this post

The Magic Trick is the Problem A of Google Code Jam 2014 Qualification Round.

Here is my solution for it in C language:


#include <stdio.h>

main() {
    int i, j, T, first, second,
	F[4], S[4], t[4], r, n;

    scanf("%d\n", &T);
    for (i = 0; i < T; i++) {
	printf("Case #%d: ", i + 1);
	scanf("%d", &first);
	for(j = 0; j < 4; j++) {
	    if (j == first - 1) {
		scanf("%d %d %d %d", F, F+1, F+2, F+3);
	    } else {
		scanf("%d %d %d %d", t, t+1, t+2, t+3); 
	    }
	}
	scanf("%d", &second);
	for(j = 0; j < 4; j++) {
	    if (j == second - 1) {
		scanf("%d %d %d %d", S, S+1, S+2, S+3);
	    } else {
		scanf("%d %d %d %d", t, t+1, t+2, t+3); 
	    }
	}
	n = 0;
	for(j = 0; j < 4; j++) {
	    if (F[j] == S[0] || F[j] == S[1] || F[j] == S[2] || F[j] == S[3]) {
		n++;
		r = F[j];
	    }
	}
	switch(n) {
	case 0: printf("Volunteer cheated!\n"); break;
	case 1: printf("%d\n", r); break;
	default:printf("Bad magician!\n");
	}
    }
}

Leave a Reply