#include <stdio.h>

int getSingleOccurrence(int nArray[], int n){
int ones = 0, twos=0;
int common_bit_mask=0;
int i;

for(i=0;i<n;i++){
    twos|= ones & nArray[i];
    ones^=nArray[i];
    common_bit_mask = ~(ones & twos);
    ones&=common_bit_mask;
    twos&=common_bit_mask;
}
return ones;
}


int main(){
   int nArray[]={3,3,1,3,6,1,6,7,1,6};
   int result = getSingleOccurrence(nArray,10);
   printf("Result %d", result);
   return 0;
}