#include <stdio.h>
int main() {
int a[20], n, head, size, dir, i, move = 0;
printf("No. of Requests: ");
scanf("%d", &n);
printf("Request Sequence: ");
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("Initial Head Position: ");
scanf("%d", &head);
printf("Total Disk Size: ");
scanf("%d", &size);
printf("Head Movement Direction (High=1, Low=0): ");
scanf("%d", &dir);
if(dir == 1)
move = (size - 1 - head) + (size - 1 - a[0]);
else
move = head + a[n - 1];
printf("Total Head Movement = %d\n", move);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpIHsKICAgIGludCBhWzIwXSwgbiwgaGVhZCwgc2l6ZSwgZGlyLCBpLCBtb3ZlID0gMDsKCiAgICBwcmludGYoIk5vLiBvZiBSZXF1ZXN0czogIik7CiAgICBzY2FuZigiJWQiLCAmbik7CgogICAgcHJpbnRmKCJSZXF1ZXN0IFNlcXVlbmNlOiAiKTsKICAgIGZvcihpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBzY2FuZigiJWQiLCAmYVtpXSk7CgogICAgcHJpbnRmKCJJbml0aWFsIEhlYWQgUG9zaXRpb246ICIpOwogICAgc2NhbmYoIiVkIiwgJmhlYWQpOwoKICAgIHByaW50ZigiVG90YWwgRGlzayBTaXplOiAiKTsKICAgIHNjYW5mKCIlZCIsICZzaXplKTsKCiAgICBwcmludGYoIkhlYWQgTW92ZW1lbnQgRGlyZWN0aW9uIChIaWdoPTEsIExvdz0wKTogIik7CiAgICBzY2FuZigiJWQiLCAmZGlyKTsKCiAgICBpZihkaXIgPT0gMSkKICAgICAgICBtb3ZlID0gKHNpemUgLSAxIC0gaGVhZCkgKyAoc2l6ZSAtIDEgLSBhWzBdKTsKICAgIGVsc2UKICAgICAgICBtb3ZlID0gaGVhZCArIGFbbiAtIDFdOwoKICAgIHByaW50ZigiVG90YWwgSGVhZCBNb3ZlbWVudCA9ICVkXG4iLCBtb3ZlKTsKCiAgICByZXR1cm4gMDsKfQ==
I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7CgppbnQgbWFpbigpIHsKICAgIGludCBhWzIwXSwgbiwgaGVhZCwgc2l6ZSwgZGlyLCBpLCBtb3ZlID0gMDsKCiAgICBwcmludGYoJnF1b3Q7Tm8uIG9mIFJlcXVlc3RzOiAmcXVvdDspOwogICAgc2NhbmYoJnF1b3Q7JWQmcXVvdDssICZhbXA7bik7CgogICAgcHJpbnRmKCZxdW90O1JlcXVlc3QgU2VxdWVuY2U6ICZxdW90Oyk7CiAgICBmb3IoaSA9IDA7IGkgJmx0OyBuOyBpKyspCiAgICAgICAgc2NhbmYoJnF1b3Q7JWQmcXVvdDssICZhbXA7YVtpXSk7CgogICAgcHJpbnRmKCZxdW90O0luaXRpYWwgSGVhZCBQb3NpdGlvbjogJnF1b3Q7KTsKICAgIHNjYW5mKCZxdW90OyVkJnF1b3Q7LCAmYW1wO2hlYWQpOwoKICAgIHByaW50ZigmcXVvdDtUb3RhbCBEaXNrIFNpemU6ICZxdW90Oyk7CiAgICBzY2FuZigmcXVvdDslZCZxdW90OywgJmFtcDtzaXplKTsKCiAgICBwcmludGYoJnF1b3Q7SGVhZCBNb3ZlbWVudCBEaXJlY3Rpb24gKEhpZ2g9MSwgTG93PTApOiAmcXVvdDspOwogICAgc2NhbmYoJnF1b3Q7JWQmcXVvdDssICZhbXA7ZGlyKTsKCiAgICBpZihkaXIgPT0gMSkKICAgICAgICBtb3ZlID0gKHNpemUgLSAxIC0gaGVhZCkgKyAoc2l6ZSAtIDEgLSBhWzBdKTsKICAgIGVsc2UKICAgICAgICBtb3ZlID0gaGVhZCArIGFbbiAtIDFdOwoKICAgIHByaW50ZigmcXVvdDtUb3RhbCBIZWFkIE1vdmVtZW50ID0gJWRcbiZxdW90OywgbW92ZSk7CgogICAgcmV0dXJuIDA7Cn0=
#include <stdio.h>
int main() {
int a[20], n, head, size, dir, i, move = 0;
printf("No. of Requests: ");
scanf("%d", &n);
printf("Request Sequence: ");
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("Initial Head Position: ");
scanf("%d", &head);
printf("Total Disk Size: ");
scanf("%d", &size);
printf("Head Movement Direction (High=1, Low=0): ");
scanf("%d", &dir);
if(dir == 1)
move = (size - 1 - head) + (size - 1 - a[0]);
else
move = head + a[n - 1];
printf("Total Head Movement = %d\n", move);
return 0;
}