Codeforces 599B Spongebob and Joke 【水题】

原创 2015年11月23日 22:05:03

B. Spongebob and Joke
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

While Patrick was gone shopping, Spongebob decided to play a little trick on his friend. The naughty Sponge browsed through Patrick's personal stuff and found a sequence a1, a2, ..., am of length m, consisting of integers from 1 to n, not necessarily distinct. Then he picked some sequence f1, f2, ..., fn of length n and for each number ai got number bi = fai. To finish the prank he erased the initial sequence ai.

It's hard to express how sad Patrick was when he returned home from shopping! We will just say that Spongebob immediately got really sorry about what he has done and he is now trying to restore the original sequence. Help him do this or determine that this is impossible.

Input

The first line of the input contains two integers n and m (1 ≤ n, m ≤ 100 000) — the lengths of sequences fi and bi respectively.

The second line contains n integers, determining sequence f1, f2, ..., fn (1 ≤ fi ≤ n).

The last line contains m integers, determining sequence b1, b2, ..., bm (1 ≤ bi ≤ n).

Output

Print "Possible" if there is exactly one sequence ai, such that bi = fai for all i from 1 to m. Then print m integers a1, a2, ..., am.

If there are multiple suitable sequences ai, print "Ambiguity".

If Spongebob has made a mistake in his calculations and no suitable sequence ai exists, print "Impossible".

Sample test(s)
input
3 3
3 2 1
1 2 3
output
Possible
3 2 1 
input
3 3
1 1 1
1 1 1
output
Ambiguity
input
3 3
1 2 1
3 3 3
output
Impossible
Note

In the first sample 3 is replaced by 1 and vice versa, while 2 never changes. The answer exists and is unique.

In the second sample all numbers are replaced by 1, so it is impossible to unambiguously restore the original sequence.

In the third sample fi ≠ 3 for all i, so no sequence ai transforms into such bi and we can say for sure that Spongebob has made a mistake.



题意:给定一个由n个元素组成的序列f,一个由m个元素组成的序列b(n>=m),问是否唯一存在一个序列a[]使得

对任意的i,都有b[i] = f[a[i]]。


用两个map就可以轻松KO了。



AC代码:


#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <queue>
#include <stack>
#include <map>
#include <vector>
#define INF 0x3f3f3f3f
#define MAXN 1000000+10
#define MAXM 1010
#define eps 1e-8
#define LL long long
using namespace std;
int f[MAXN], b[MAXN];
map<int, int> fp;
map<int, int> id;
int main()
{
    int n, m;
    scanf("%d%d", &n, &m);
    fp.clear(); id.clear();
    for(int i = 1; i <= n; i++)
        scanf("%d", &f[i]), fp[f[i]]++, id[f[i]] = i;
    int sum = 0, tsum = 0;
    for(int i = 1; i <= m; i++)
    {
        scanf("%d", &b[i]);
        if(fp[b[i]] == 1)
            sum++;
        else if(fp[b[i]] > 1)
            tsum++;
    }
    if(sum + tsum < m)
        printf("Impossible\n");
    else if(tsum > 0)
        printf("Ambiguity\n");
    else
    {
        printf("Possible\n");
        int used = 0;
        for(int i = 1; i <= m; i++)
        {
            if(fp[b[i]] == 1)
            {
                if(used > 0) printf(" ");
                printf("%d", id[b[i]]);
                used++;
            }
        }
        printf("\n");
    }
    return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

codeforces 599B Spongebob and Joke

B. Spongebob and Joketime limit per test:2 secondsmemory limit per test:256 megabytesinput:standard ...
  • FTQOOO
  • FTQOOO
  • 2015年11月26日 21:31
  • 360

Codeforces 599 B Spongebob and Joke

传送门: http://codeforces.com/problemset/problem/599/B 题意: 给出序列f[i]和f[a[i]],要求还原序列a[i]不就是记录一下ans[f[i...
  • yp_2013
  • yp_2013
  • 2016年01月17日 11:19
  • 330

Codeforces 599B: Spongebob and Joke(技巧,规律)

B. Spongebob and Joke time limit per test 2 seconds memory limit per test 256 megabytes ...
  • zugofn
  • zugofn
  • 2016年07月22日 00:28
  • 114

Codeforces #332 B. Spongebob and Joke (思路)

题意: 给定长度为n的序列f,长度为m的序列b,且fai=b[i],求长度为m的序列给定长度为n的序列f, 长度为m的序列b, 且f_{a_i}=b[i], 求长度为m的序列 多解输出Amb...
  • lwt36
  • lwt36
  • 2015年11月21日 03:15
  • 307

Codeforces Round #332 (Div. 2) B. Spongebob and Joke

Codeforces Round #332 (Div. 2) C. Spongebob and Joke Vector

Codeforces Round #332 (Div. 2)_B. Spongebob and Joke

B. Spongebob and Joke time limit per test 2 seconds memory limit per test 256 megabytes ...

【Codeforces Round 332 (Div 2)B】【扭转题意 位置映射】Spongebob and Joke 给b[]中的每个数找f[]中的位置

B. Spongebob and Joke time limit per test 2 seconds memory limit per test 256 megabytes ...

Codeforces 599 D Spongebob and Squares

传送门: http://codeforces.com/problemset/problem/599/D题意: 求出所有的n和m,使得在n*m的矩形里恰有k个不同的正方形和明显的数学公式题嘛!! ...
  • yp_2013
  • yp_2013
  • 2016年01月16日 23:58
  • 666

codeforces 599D. Spongebob and Squares【推公式+暴力枚举】

D. Spongebob and Squares time limit per test 2 seconds memory limit per test 256 megabyt...
  • Bcwan_
  • Bcwan_
  • 2016年08月30日 20:26
  • 269

CodeForces 599D Spongebob and Squares(DP+math)

Spongebob and Squares Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Codeforces 599B Spongebob and Joke 【水题】
举报原因:
原因补充:

(最多只允许输入30个字)