UVA-11111-Generalized Matrioshkas

来源:互联网 发布:node安装anywhere 编辑:程序博客网 时间:2024/05/23 21:56
#include <stdio.h>static int G_END = 0;static int G_CASE_END = 0;static int start = 0;int getNext(){int tmp;char rear = -1;G_END = scanf("%d%c",&tmp,&rear);G_CASE_END = ((rear=='\n'||rear==-1)?1:0);return tmp;}int matrioshka(int size){int free_space = -size;int next;while (1){if(G_CASE_END)break;next = getNext();start = 1;if (next == -size)break;else if (next > 0)return 0;else{int result = matrioshka(next);if(result)free_space -= result;elsefree_space = 0;}}if(free_space > 0 && start){start = 0;return -size;}return 0;}void output(int result){puts(result?":-) Matrioshka!":":-( Try again.");}int main(){char trash[100000];while (1){int most_outer_size = getNext();if(G_END == -1)break;output(matrioshka(most_outer_size));if(!G_CASE_END)gets(trash);}return 0;}

原创粉丝点击