#include<stdio.h>
int main()
{
int test(int*, int);
int arr[] = {0, 1, 1, 1, 4, 4};
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;
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IG1haW4oKQp7CiAgICBpbnQgdGVzdChpbnQqLCBpbnQpOwogICAgaW50IGFycltdID0gezAsIDEsIDEsIDEsIDQsIDR9OwogICAgaW50IGxlbmd0aCA9IHNpemVvZihhcnIpL3NpemVvZihpbnQpOwogICAgdGVzdChhcnIsbGVuZ3RoKTsKICAgIHJldHVybiAxOwp9CiAKaW50IHRlc3QoaW50KiBhcnIsaW50IE4pCnsKICAgIGludCByZXN1bHQxID0gMDsgICAvLyBzdG9yZSB0aGUgeG9yIG9mIGFyclthcnJbaV1dIAogICAgaW50IHJlc3VsdDIgPSAwOyAgIC8vIHN0b3JlIHRoZSB4b3Igb2YgYWxsIG51bWJlcnMKICAgIGludCByZXN1bHQzID0gMDsgICAvLyBzdG9yZSB0aGUgeG9yIG9mIGFsbCBpbmRleGVzCiAgICAKICAgIGludCBjb3VudFplcm9zID0gMDsKICAgIGludCBjb3VudEZpcnN0VmFsdWUgPSAwOwogICAgaW50IGluaXQgPSBhcnJbMF07CiAgICAKICAgIC8vaWYoaW5pdD09MCkKICAgIC8vY291bnQrKzsKICAgIAogICAgLy8gY2hlY2tzIGZvciBzcGVjaWFsIGNhc2UgZWl0aGVyIDAgaXMgcmVwZWF0ZWQgb3IgdGhlIGZpcnN0IHZhbHVlIGlzIHJlcGVhdGVkIAogICAgaW50IGk7CiAgICBmb3IoaT0wO2k8TjtpKyspCiAgICB7CiAgICAgICAgaWYoYXJyW2ldPT0wKQogICAgICAgIGNvdW50WmVyb3MrKzsKICAgICAgICBlbHNlIGlmKGFycltpXT09aW5pdCkKICAgICAgICBjb3VudEZpcnN0VmFsdWUrKzsKIAogICAgICAgIGlmKGNvdW50WmVyb3MgPjEgfHwgY291bnRGaXJzdFZhbHVlID4gMSkKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiUmVwZWF0ZWQiKTsKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KIAogICAgfQogCiAgICBmb3IoaT0wO2k8TjtpKyspCiAgICB7CiAgICAgICAgcmVzdWx0MSBePSBhcnJbYXJyW2ldXTsKICAgICAgICByZXN1bHQyIF49IGFycltpXTsKICAgICAgICByZXN1bHQzIF49IGk7CiAgICB9CiAgICBpZigocmVzdWx0MT09cmVzdWx0MikgJiYgKHJlc3VsdDE9PXJlc3VsdDMpKQogICAgcHJpbnRmKCJOT1QgUkVQRUFURUQiKTsKICAgIGVsc2UKICAgIHByaW50ZigiUkVQRUFURUQiKTsKICAgIHJldHVybiAxOwp9