// Online C compiler to run C program online
// Selection Sort(Ascending Order)
/*#include <stdio.h>
int selectionsort(int s, int a[], int size) {
int mini, index, j;
index = s;
mini = a[s];
for (j = s; j < size; j++) {
if (mini > a[j]) {
mini = a[j];
index = j;
}
}
return index;
}
int main() {
int i, temp, indexofmin, n;
printf("Number of variables: ");
scanf("%d", &n);
int arr[n];
for (i = 0; i < n; i++) {
printf("Enter variable no %d: ", i + 1);
scanf("%d", &arr[i]);
}
for (i = 0; i < n; i++) {
indexofmin = selectionsort(i, arr, n);
temp = arr[i];
arr[i] = arr[indexofmin];
arr[indexofmin] = temp;
}
printf("\nSorted array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}*/
/*
//selection sort (Descending order)
#include <stdio.h>
int selectionsort(int s,int a[],int size)
{
int max,index,j;
index=s;
max=a[s];
for(j=s; j<size; j++)
{
if(max<a[j])
{
max=a[j];
index=j;
}
else
{
max=max;
}
}
return index;
}
int main()
{
int i,j,max,temp,indexofmax,n;
printf("Number of variables: ");
scanf("%d", &n);
int arr[n];
for(i=0; i<n; i++)
{
printf("enter variable no %d:",i+1);
scanf("%d",&arr[i]);
}
for(i=0; i<n; i++)
{
indexofmax=selectionsort(i, arr,n);
temp=arr[i];
arr[i]=arr[indexofmax];
arr[indexofmax]=temp;
}
for(i=0; i<n; i++)
{
printf(" %d ",arr[i]);
}
return 0;
}
*/
Ly8gT25saW5lIEMgY29tcGlsZXIgdG8gcnVuIEMgcHJvZ3JhbSBvbmxpbmUKLy8gU2VsZWN0aW9uIFNvcnQoQXNjZW5kaW5nIE9yZGVyKQoKLyojaW5jbHVkZSA8c3RkaW8uaD4KCmludCBzZWxlY3Rpb25zb3J0KGludCBzLCBpbnQgYVtdLCBpbnQgc2l6ZSkgewogICAgaW50IG1pbmksIGluZGV4LCBqOwogICAgaW5kZXggPSBzOwogICAgbWluaSA9IGFbc107CgogICAgZm9yIChqID0gczsgaiA8IHNpemU7IGorKykgewogICAgICAgIGlmIChtaW5pID4gYVtqXSkgewogICAgICAgICAgICBtaW5pID0gYVtqXTsKICAgICAgICAgICAgaW5kZXggPSBqOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBpbmRleDsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgaSwgdGVtcCwgaW5kZXhvZm1pbiwgbjsKCiAgICBwcmludGYoIk51bWJlciBvZiB2YXJpYWJsZXM6ICIpOwogICAgc2NhbmYoIiVkIiwgJm4pOwoKICAgIGludCBhcnJbbl07CiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCJFbnRlciB2YXJpYWJsZSBubyAlZDogIiwgaSArIDEpOwogICAgICAgIHNjYW5mKCIlZCIsICZhcnJbaV0pOwogICAgfQoKICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpbmRleG9mbWluID0gc2VsZWN0aW9uc29ydChpLCBhcnIsIG4pOwogICAgICAgIHRlbXAgPSBhcnJbaV07CiAgICAgICAgYXJyW2ldID0gYXJyW2luZGV4b2ZtaW5dOwogICAgICAgIGFycltpbmRleG9mbWluXSA9IHRlbXA7CiAgICB9CgogICAgcHJpbnRmKCJcblNvcnRlZCBhcnJheTogIik7CiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlZCAiLCBhcnJbaV0pOwogICAgfQoKICAgIHJldHVybiAwOwogICAgfSovCi8qCi8vc2VsZWN0aW9uIHNvcnQgKERlc2NlbmRpbmcgb3JkZXIpCiNpbmNsdWRlIDxzdGRpby5oPgppbnQgc2VsZWN0aW9uc29ydChpbnQgcyxpbnQgYVtdLGludCBzaXplKQp7CiAgICBpbnQgbWF4LGluZGV4LGo7CiAgICBpbmRleD1zOwogICAgbWF4PWFbc107CgogICAgZm9yKGo9czsgajxzaXplOyBqKyspCiAgICB7CiAgICAgICAgaWYobWF4PGFbal0pCiAgICAgICAgewogICAgICAgICAgICBtYXg9YVtqXTsKICAgICAgICAgICAgaW5kZXg9ajsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgbWF4PW1heDsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gaW5kZXg7Cn0KCmludCBtYWluKCkKewoKICAgIGludCBpLGosbWF4LHRlbXAsaW5kZXhvZm1heCxuOwogICAgcHJpbnRmKCJOdW1iZXIgb2YgdmFyaWFibGVzOiAiKTsKICAgIHNjYW5mKCIlZCIsICZuKTsKCiAgICBpbnQgYXJyW25dOwogICAgZm9yKGk9MDsgaTxuOyBpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCJlbnRlciB2YXJpYWJsZSBubyAlZDoiLGkrMSk7CiAgICAgICAgc2NhbmYoIiVkIiwmYXJyW2ldKTsKICAgIH0KICAgIGZvcihpPTA7IGk8bjsgaSsrKQogICAgewoKICAgICAgICBpbmRleG9mbWF4PXNlbGVjdGlvbnNvcnQoaSwgYXJyLG4pOwogICAgICAgIHRlbXA9YXJyW2ldOwogICAgICAgIGFycltpXT1hcnJbaW5kZXhvZm1heF07CiAgICAgICAgYXJyW2luZGV4b2ZtYXhdPXRlbXA7CgogICAgfQogICAgZm9yKGk9MDsgaTxuOyBpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCIgJWQgIixhcnJbaV0pOwoKICAgIH0KCiAgICByZXR1cm4gMDsKfQoqLw==