CodeForces 599B Spongebob and Joke

简单题。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

const int maxn=100000+10;
int n,m;
int b[maxn],f[maxn];

int cnt[maxn];

int main()
{
    scanf("%d%d",&n,&m);
    memset(cnt,0,sizeof cnt);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&f[i]);
        cnt[f[i]]++;
    }
    for(int i=1;i<=m;i++) scanf("%d",&b[i]);

    bool fail=0;
    for(int i=1;i<=m;i++) if(cnt[b[i]]==0) fail=1;

    if(fail==1) printf("Impossible
");
    else
    {
        fail=0;
        for(int i=1;i<=m;i++) if(cnt[b[i]]>1) fail=1;
        if(fail) printf("Ambiguity
");
        else{
            printf("Possible
");
            memset(cnt,0,sizeof cnt);
            for(int i=1;i<=n;i++) cnt[f[i]]=i;
            for(int i=1;i<=m;i++) printf("%d ",cnt[b[i]]);
            printf("
");
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/zufezzt/p/5469122.html