新手写C,题目超时了,怎么优化

题目如下
图片说明

下面是我写的代码。
#include
#include
int main()
{
int n,m;
while(scanf("%d",&n)!=EOF)
{
scanf("%d",&m);
int *str,*a;
int tap = 0,x;
str = (int *)malloc(n*4);
a = (int *)malloc(m*4);
for(int i = 0 ; i < n ; i++)
{
scanf("%d",&str[i]);
if(!tap)
for(int j = 0 ; j < i ; j++)
{
if(str[j] == str[i])
tap = 1;
}
}
for(int i = 0 ; i < m ; i++)
{
int j;
scanf("%d",&x);
for(j = 0 ; j < n ; j++)
{
if(x == str[j])
{
a[i] = j+1;
break;
}
}
if(j == n)
{
tap = 2;
break;
}
}
switch(tap)
{
case 2:printf("Impossible\n");
break;
case 1:printf("Ambiguity\n");
break;
case 0:
printf("Possible\n");
for(int i = 0 ; i < m ; i++)
{
printf("%d",a[i]);
if(i < m - 1)
printf(" ");
}
printf("\n");
}
}
}

查看全部
dearMakiseKurisu
dearMakiseKurisu
2019/10/12 23:06
  • c语言
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

1个回复