void deletedup(int *Arr,int *len)
{
	int p, q;
	for (p = 0; p < *len - 1; p++){
		for (q = p + 1; q < *len;){
			if (Arr[p] == Arr[q])
				deletepos(Arr, len, q);
			else
				q++;
		}
	}
}
예제 #2
0
int main()
{
	int t,l;
	int k;
	char a[100],b[100];
	char c[100];
	scanf("%lld",&t);
	
	while(t--)
	{
		scanf("%s",c);
		if(strcmp("InitHeap",c)==0)
		{
			hsize++;
			scanf("%s",a);
			scanf("%s",b);
			strcpy(h[hsize].first,a);
			strcpy(h[hsize].last,b);
			h[hsize].arrpos=hsize;
			percolateUp(hsize);
			}
		else if(strcmp("Insert",c)==0)
		{
			hsize++;
			scanf("%s",a);
			scanf("%s",b);
			strcpy(h[hsize].first,a);
			strcpy(h[hsize].last,b);
			h[hsize].arrpos=hsize;
			percolateUp(hsize);
			k=find(a,b);
			printf("%d\n",k);
		}
		else if(strcmp("FindMin",c)==0)
		{	
			if(hsize>=1)
			printf("%s %s\n",h[1].first,h[1].last);
			else
			printf("-1\n");		
		}
		else if(strcmp("DeleteMin",c)==0)
		{
			if(hsize<1)
				printf("-1\n");
			else
			{
				printf("%s %s\n",h[1].first,h[1].last);
				DeleteMin();
			}
		}
		else if(strcmp("Delete",c)==0)
		{
			scanf("%lld",&l);
			if(l==0)
			printf("-1\n");
			else if(hsize<l)  
			printf("-1\n");
			else
			{	
				printf("%s %s\n",h[l].first,h[l].last);
				deletepos(l);
			}
		}
	}
	return 0;
}