【codeforce】Spongebob and Joke

女爷i 2022-09-24 02:27 250阅读 0赞

这里写图片描述
这里写图片描述
这里写图片描述
我代码的关键是存储下标.如果bm中的元素fn中都有且只出现一次,可得possible;如果bm中的元素fn中都有但有fn中有出现两次的,可判断ambiguity;如果bm中的元素有fn中没有的,可判断impossible。

  1. #include<stdio.h>
  2. #include<string.h>
  3. int bum[100010],fum[100010],aum[100010][2];
  4. int main() {
  5. int f,b;
  6. while(scanf("%d %d",&f,&b)!=EOF) {
  7. memset(bum,0,sizeof(bum));
  8. memset(bum,0,sizeof(fum));
  9. memset(aum,0,sizeof(aum));
  10. for(int l=1; l<=f; l++) {
  11. scanf("%d",&fum[l]);
  12. if(aum[fum[l]][0]) { //如果前面出现过相同的fum元素,
  13. //则标记此下标,因为有两个下标表示同一个数
  14. aum[fum[l]][1]=1;
  15. }
  16. aum[fum[l]][0]=l;
  17. }
  18. int m=0;
  19. for(int l=1; l<=b; l++) {
  20. scanf("%d",&bum[l]);
  21. if(m==1)
  22. continue;
  23. if(!aum[bum[l]][0])
  24. m=1;
  25. if(aum[bum[l]][0]&&aum[bum[l]][1])
  26. m=2;
  27. }
  28. if(m==1)
  29. printf("Impossible\n");
  30. if(m==2)
  31. printf("Ambiguity\n");
  32. if(m==0) {
  33. printf("Possible\n");
  34. for(int l=1; l<=b; l++) {
  35. if(l<b)
  36. printf("%d ",aum[bum[l]][0]);
  37. else
  38. printf("%d\n",aum[bum[l]][0]);
  39. }
  40. }
  41. }
  42. return 0;
  43. }

http://acm.hust.edu.cn/vjudge/contest/123213#problem/K

发表评论

表情:
评论列表 (有 0 条评论,250人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python游戏编程(三)Jokes

    本篇介绍一个简单的讲笑话的小游戏,由简单的输入和输出组成。输入时用户使用键盘来键入的。输出时在屏幕上显示的文本。 主要内容: 转义字符 使用单引号和双引号的字符

    相关 and or php,AND OR

    \\ AND OR 上面是基础的Where语句,下面看一下复杂一点的 你可以使用"AND" 或 "OR" 来拼接非常复杂的SQL语句 ~~~ namespace Act

    相关 Hdu 4969 Just a Joke (简单积分)

    题意:女孩沿圆周做速度v1的匀速圆周运动,男孩从圆心出发追赶女孩,速度v2,保持男孩女孩圆心在一条直线,给出男孩最大移动距离,问能否追上 思路:将男孩的速度分解为径向vx和切