#include #include #define n_questoes 22 #define resolver 12 #define fixas 2 #define aleatorias resolver - fixas int main() { int questoes[n_questoes], matricula[aleatorias]; int i, j, k, restantes, posicao; int vetor[n_questoes] = {0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7}; int bloco[8] = {2, 2, 1, 2, 1, 1, 2, 1}; printf("Entre com seu número de matrícula separado por espaços (exemplo: 0 1 2 3 4 5): "); for(i = 0; i < 6; i++) scanf("%d", &matricula[i]); for(i = 0, j = 5; i < 3; i++, j--){ matricula[i] = matricula[i] + matricula[j]; matricula[j] = matricula[i] - matricula[j]; matricula[i] = matricula[i] - matricula[j]; } for(i = 6; i < aleatorias; i++) matricula[i] = matricula[i - 6] + matricula[i - 5]; for(i = 0; i < aleatorias; i++) matricula[i]++; for(i = 0; i < n_questoes; i++){ questoes[i] = 0; } questoes[0] = 1; questoes[1] = 1; posicao = 0; for(i = 0; i < aleatorias; i++){ k = 0; while(k < matricula[i]){ if(questoes[posicao++] == 0){ k++; } if(posicao == n_questoes) posicao = 0; } if(posicao != 0) posicao--; else posicao = n_questoes - 1; if(bloco[vetor[posicao]] > 0){ questoes[posicao] = 1; bloco[vetor[posicao]]--; } else{ questoes[posicao] = -1; i--; } } printf("Você deve resolver: "); for(i = 0; i < n_questoes; i++) if(questoes[i] == 1) printf("%d ", i + 1); printf("\n"); getch(); return 0; }