#include<stdio.h>
int main()
{
int test(int*, int);
int arr[] = {1,4,0,0,2};
int length = sizeof(arr)/sizeof(int);
test(arr,length);
return 1;
}
int test(int* arr,int N)
{
int result1 = 0; // store the xor of arr[arr[i]]
int result2 = 0; // store the xor of all numbers
int result3 = 0; // store the xor of all indexes
int countZeros = 0;
int countFirstValue = 0;
int init = arr[0];
//if(init==0)
//count++;
// checks for special case either 0 is repeated or the first value is repeated
int i;
for(i=0;i<N;i++)
{
if(arr[i]==0)
countZeros++;
else if(arr[i]==init)
countFirstValue++;
if(countZeros >1 || countFirstValue > 1)
{
printf("Repeated");
return -1;
}
}
for(i=0;i<N;i++)
{
result1 ^= arr[arr[i]];
result2 ^= arr[i];
result3 ^= i;
}
if((result1==result2) && (result1==result3))
printf("NOT REPEATED");
else
printf("REPEATED");
return 1;
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IG1haW4oKQp7CiAgICBpbnQgdGVzdChpbnQqLCBpbnQpOwogICAgaW50IGFycltdID0gezEsNCwwLDAsMn07CiAgICBpbnQgbGVuZ3RoID0gc2l6ZW9mKGFycikvc2l6ZW9mKGludCk7CiAgICB0ZXN0KGFycixsZW5ndGgpOwogICAgcmV0dXJuIDE7Cn0KIAppbnQgdGVzdChpbnQqIGFycixpbnQgTikKewogICAgaW50IHJlc3VsdDEgPSAwOyAgIC8vIHN0b3JlIHRoZSB4b3Igb2YgYXJyW2FycltpXV0gCiAgICBpbnQgcmVzdWx0MiA9IDA7ICAgLy8gc3RvcmUgdGhlIHhvciBvZiBhbGwgbnVtYmVycwogICAgaW50IHJlc3VsdDMgPSAwOyAgIC8vIHN0b3JlIHRoZSB4b3Igb2YgYWxsIGluZGV4ZXMKICAgIAogICAgaW50IGNvdW50WmVyb3MgPSAwOwogICAgaW50IGNvdW50Rmlyc3RWYWx1ZSA9IDA7CiAgICBpbnQgaW5pdCA9IGFyclswXTsKICAgIAogICAgLy9pZihpbml0PT0wKQogICAgLy9jb3VudCsrOwogICAgCiAgICAvLyBjaGVja3MgZm9yIHNwZWNpYWwgY2FzZSBlaXRoZXIgMCBpcyByZXBlYXRlZCBvciB0aGUgZmlyc3QgdmFsdWUgaXMgcmVwZWF0ZWQgCiAgICBpbnQgaTsKICAgIGZvcihpPTA7aTxOO2krKykKICAgIHsKICAgICAgICBpZihhcnJbaV09PTApCiAgICAgICAgY291bnRaZXJvcysrOwogICAgICAgIGVsc2UgaWYoYXJyW2ldPT1pbml0KQogICAgICAgIGNvdW50Rmlyc3RWYWx1ZSsrOwogCiAgICAgICAgaWYoY291bnRaZXJvcyA+MSB8fCBjb3VudEZpcnN0VmFsdWUgPiAxKQogICAgICAgIHsKICAgICAgICAgICAgcHJpbnRmKCJSZXBlYXRlZCIpOwogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogCiAgICB9CiAKICAgIGZvcihpPTA7aTxOO2krKykKICAgIHsKICAgICAgICByZXN1bHQxIF49IGFyclthcnJbaV1dOwogICAgICAgIHJlc3VsdDIgXj0gYXJyW2ldOwogICAgICAgIHJlc3VsdDMgXj0gaTsKICAgIH0KICAgIGlmKChyZXN1bHQxPT1yZXN1bHQyKSAmJiAocmVzdWx0MT09cmVzdWx0MykpCiAgICBwcmludGYoIk5PVCBSRVBFQVRFRCIpOwogICAgZWxzZQogICAgcHJpbnRmKCJSRVBFQVRFRCIpOwogICAgcmV0dXJuIDE7Cn0=