View Code of Problem 2591

#include<stdio.h>
#include<string.h>
#define N 100
char *DELETE(int i, char a[])
{
	int n;
	for (n = i; a[n] != '\0'; n++)
	{
		a[n] = a[n + 1];
	}
	return a;
}
char *sort(char a[])
{
	int i,j;
	int min;
	char temp;
	for (i = 0; a[i + 1] != '\0'; i++)
	{
		for (j = i + 1; a[j] != '\0'; j++)
		{
			min = i;
			if (a[i] > a[j])
				min = j;
			temp = a[i];
			a[i] = a[min];
			a[min] = temp;
		}
	}
	return a;
}
int main()
{
	int round;
	int n;
	int i, j, k;
	char a[N], b[N], c[N];
	scanf("%d",&round);
	for (i = 1; i <= round; i++)
	{
		n=0;
		gets(a);
		gets(b);
		for (j = 0; a[j] != '\0'; j++)
			for (k = 0; b[k] != '\0'; k++)
			{
				if (a[j] == b[k])
				{
					c[n++] = a[j];
					strcpy(b, DELETE(k, b));
					break;
					
				}
			}
		c[n]='\0';
		if (c[0] == '\0')
			printf("-1\n");
		else
		{
			strcpy(c,sort(c));
			puts(c);
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 2591