#include<stdio.h> int top = 0; void push(int s[], int n) { s[top] = n; top++; return; } int main() { int stack[4]; int n; scanf("%d", &n); for (int i = 0; i < n; i++) { for (int i = 0; i < 4; i++) { stack[i] = 0; } top = 0; int flag = 0; for (int k = 0; k < 4; k++) { int now; scanf("%d", &now); if (now != 0 && top != 0 && now == stack[top - 1] && flag == 0) { stack[top - 1] *= 2; flag = 1; } else if (now != 0 && now != stack[top]) { push(stack, now); flag = 0; } } if (top != 0) { for (int i = 0; i < 4 - top; i++) { printf("0 "); } for (int i = 0; i < top - 1; i++) { printf("%d ", stack[i]); } printf("%d\n", stack[top - 1]); } else { printf("0 0 0 0\n"); } } } |
Double click to view unformatted code.