#include <stdio.h>
#include <stdlib.h>
void swap(int* a, int* b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
int segregate(int arr[], int size)
{
int j = 0, i;
for (i = 0; i < size; i++) {
if (arr[i] <= 0) {
swap(&arr[i], &arr[j]);
j++;
}
}
return j;
}
int findMissingPositive(int arr[], int size)
{
int i;
for (i = 0; i < size; i++) {
if (abs(arr
[i
]) - 1 < size
&& arr
[abs(arr
[i
]) - 1] > 0) arr
[abs(arr
[i
]) - 1] = -arr
[abs(arr
[i
]) - 1]; }
for (i = 0; i < size; i++)
if (arr[i] > 0)
return i + 1;
return size + 1;
}
int findMissing(int arr[], int size)
{
int shift = segregate(arr, size);
return findMissingPositive(arr + shift, size - shift);
}
int main()
{
int arr[10],n;
for(int i=0;i<n;i++)
int missing = findMissing(arr, n);
printf("The missing number is %d ", missing
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+IAojaW5jbHVkZSA8c3RkbGliLmg+IAp2b2lkIHN3YXAoaW50KiBhLCBpbnQqIGIpIAp7IAogICAgaW50IHRlbXA7IAogICAgdGVtcCA9ICphOyAKICAgICphID0gKmI7IAogICAgKmIgPSB0ZW1wOyAKfSAKaW50IHNlZ3JlZ2F0ZShpbnQgYXJyW10sIGludCBzaXplKSAKeyAKICAgIGludCBqID0gMCwgaTsgCiAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7IAogICAgICAgIGlmIChhcnJbaV0gPD0gMCkgeyAKICAgICAgICAgICAgc3dhcCgmYXJyW2ldLCAmYXJyW2pdKTsgCiAgICAgICAgICAgIGorKzsgIAogICAgICAgIH0gCiAgICB9IAogIAogICAgcmV0dXJuIGo7IAp9IAogIAppbnQgZmluZE1pc3NpbmdQb3NpdGl2ZShpbnQgYXJyW10sIGludCBzaXplKSAKeyAKICAgIGludCBpOyAKICAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgeyAKICAgICAgICBpZiAoYWJzKGFycltpXSkgLSAxIDwgc2l6ZSAmJiBhcnJbYWJzKGFycltpXSkgLSAxXSA+IDApIAogICAgICAgICAgICBhcnJbYWJzKGFycltpXSkgLSAxXSA9IC1hcnJbYWJzKGFycltpXSkgLSAxXTsgCiAgICB9IAogIAogICAgICAgIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIAogICAgICAgIGlmIChhcnJbaV0gPiAwKSAKICAgICAgICAgICAgcmV0dXJuIGkgKyAxOyAKICAgICByZXR1cm4gc2l6ZSArIDE7IAp9IAppbnQgZmluZE1pc3NpbmcoaW50IGFycltdLCBpbnQgc2l6ZSkgCnsgCiAgICAgaW50IHNoaWZ0ID0gc2VncmVnYXRlKGFyciwgc2l6ZSk7CiAgICByZXR1cm4gZmluZE1pc3NpbmdQb3NpdGl2ZShhcnIgKyBzaGlmdCwgc2l6ZSAtIHNoaWZ0KTsgCn0gCiAgCmludCBtYWluKCkgCnsgCiAgICBpbnQgYXJyWzEwXSxuOyAKICAgIHNjYW5mKCIlZCIsJm4pOwogICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgIHNjYW5mKCIlZCIsJmFycltpXSk7CiAgICBpbnQgbWlzc2luZyA9IGZpbmRNaXNzaW5nKGFyciwgbik7IAogICAgcHJpbnRmKCJUaGUgbWlzc2luZyBudW1iZXIgaXMgJWQgIiwgbWlzc2luZyk7CiAgICByZXR1cm4gMDsgCn0gCgo=