DAC-ul

From Algopedia
Jump to navigationJump to search
/*
   Nume program   : DAC-ul.c
   Nume concurent : Diaconu Andrei-Calin
*/
#include <stdio.h>
#include <stdlib.h>

int v[30], S;

int citire()
{
    char c;
    int i=0;
    do
    {
        scanf("%d", &v[i]);
        c=fgetc(stdin);
        i++;
    }while(c!='\n');
    return i+1;
}

void xor(int n)
{
    int i;
    S=0;
    for(i=0;i<n;i++)
        S=S^v[i];
}

void afisare(int n)
{
    int i;
    printf("%d", v[0]);
    for(i=1;i<n;i++)
        printf(" %d", v[i]);
    printf("\n");
}

int main()
{
    int n, i, gasit=0, x;
    n=citire();
    xor(n);
    if(S!=0)
    {
        i=0;
        while(gasit==0 && i<n)
        {
            x=v[i]^S;
            if(v[i]>x)
                gasit=1;
            i++;
        }
        i--;
        v[i]=v[i]^S;
        afisare(n-1);
    }
    else
    {
            i=0;
            while(v[i]==0)
                i++;
            v[i]--;
            afisare(n-1);
    }
    return 0;
}