#include <stdio.h>
void nextGreatest(int arr[], int size)
{
int max_from_right = arr[size-1];
arr[size-1] = 0;
for(int i = size-2; i >= 0; i--)
{
int temp = arr[i];
arr[i] = max_from_right;
if(max_from_right < temp)
max_from_right = temp;
}
}
void printArray(int arr[], int size)
{
int i;
for (i=0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
}
int main()
{
int arr[] = {6, 7, 4, 3, 5, 2};
int size = sizeof(arr)/sizeof(arr[0]);
nextGreatest (arr, size);
printf ("The modified array is: \n");
printArray (arr, size);
return (0);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiB2b2lkIG5leHRHcmVhdGVzdChpbnQgYXJyW10sIGludCBzaXplKQp7CiAKICBpbnQgbWF4X2Zyb21fcmlnaHQgPSAgYXJyW3NpemUtMV07CiAgYXJyW3NpemUtMV0gPSAwOwogCiAgZm9yKGludCBpID0gc2l6ZS0yOyBpID49IDA7IGktLSkKICB7CiAgICBpbnQgdGVtcCA9IGFycltpXTsKICAgIGFycltpXSA9IG1heF9mcm9tX3JpZ2h0OwogICAgaWYobWF4X2Zyb21fcmlnaHQgPCB0ZW1wKQogICAgICAgbWF4X2Zyb21fcmlnaHQgPSB0ZW1wOwogIH0KfQp2b2lkIHByaW50QXJyYXkoaW50IGFycltdLCBpbnQgc2l6ZSkKewogIGludCBpOwogIGZvciAoaT0wOyBpIDwgc2l6ZTsgaSsrKQogICAgcHJpbnRmKCIlZCAiLCBhcnJbaV0pOwogIHByaW50ZigiXG4iKTsKfQppbnQgbWFpbigpCnsKICBpbnQgYXJyW10gPSB7NiwgNywgNCwgMywgNSwgMn07CiAgaW50IHNpemUgPSBzaXplb2YoYXJyKS9zaXplb2YoYXJyWzBdKTsKICBuZXh0R3JlYXRlc3QgKGFyciwgc2l6ZSk7CiAgcHJpbnRmICgiVGhlIG1vZGlmaWVkIGFycmF5IGlzOiBcbiIpOwogIHByaW50QXJyYXkgKGFyciwgc2l6ZSk7CiAgcmV0dXJuICgwKTsKfQo=