View Code of Problem 10

#include <stdio.h>

int main(void)
{
    int n,i,arr[4],j,k,temp;

    scanf("%d",&n);
    for(i = 0;i < n;i++)
    {
        scanf("%d%d%d%d",&arr[0],&arr[1],&arr[2],&arr[3]);
        int t = 5,index[4] = {0};
        while(t--)
        {
            for(j = 3;j >= 0;j--)
            {
                if(arr[j] == 0 &&j != 0)
                {
                    arr[j] = arr[j - 1];
                    arr[j - 1] = 0;
                    temp = index[j];
                    index[j] = index[j - 1];
                    index[j - 1] = temp;
                }
            }
            for(j = 3;j >= 0;j--)
            {

                if(arr[j] && arr[j] == arr[j - 1] && index[j] == 0 && index[j - 1] == 0)
                {
                    arr[j] *= 2;
                    index[j]++;
                    arr[j - 1] = 0;
                    for(k = j - 1;k > 0;k--)
                    {
                        temp = arr[k];
                        arr[k] = arr[k - 1];
                        arr[k - 1] = temp;
                        temp = index[j];
                        index[j] = index[j - 1];
                        index[j - 1] = temp;
                    }

                }

            }
        }

        printf("%d %d %d %d\n",arr[0],arr[1],arr[2],arr[3]);

    }
    return 0;
}

Double click to view unformatted code.


Back to problem 10