Ref: ITSA 52 - [Problem 3] 頑皮的比爾
/*******************************************************/
/* [Problem 3] 頑皮的比爾 */
/* Author: awei0905 [at] awei0905.blogspot.tw */
/* Version: 2017/05/20 */
/*******************************************************/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct Node {
char id;
Node *next;
};
int main() {
Node node[102];
int n;
scanf("%d", &n);
while (n--) {
int k;
scanf("%d", &k);
for (int i = 0; i <= k; i++) {
node[i].id = i;
node[i].next = &node[i + 1];
}
int layer;
while (scanf("%d", &layer)){
if (layer == 0) break;
Node *left = node[0].next;
Node *center = left->next;
Node *right = center->next;
for (int i = 1; i < layer; i++) {
center->next = left;
left = center;
center = right;
right = right->next;
}
node[0].next->next = center;
node[0].next = left;
}
Node *nextNode = node[0].next;
printf("%d", nextNode->id);
for (int i = 2; i <= k; i++) {
nextNode = nextNode->next;
printf(" %d", nextNode->id);
}
printf("\n");
}
}
Debug: I/O本題可以用來練習連結串列。
將每層的煎餅視為1個Node,每個Node均有獨立的id,其id代表煎餅的大小。
3
5 2 1 3 5 4 0
50 25 14 49 7 32 48 46 37 6 17 36 42 5 33 8 7 7 41 30 20 10 0
1 2 4 5 3
47 48 49 42 41 40 6 17 18 19 46 45 44 43 9 22 23 24 25 11 20 21 29 28 27 26 1 2 3 4 10 39 38 30 31 32 33 34 35 36 37 5 16 15 14 13 7 8 12 50
沒有留言:
張貼留言