Cod sursa(job #1533692)

Utilizator DysKodeTurturica Razvan DysKode Data 22 noiembrie 2015 21:17:27
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.26 kb
#include <fstream>
#include <vector>
#include <iostream>
#include <algorithm>
#include <map>
#include <iomanip>
#include <string>
#include <sstream>
#include <set>
#include <queue>
using namespace std;

ifstream fin(".in");

#define iOS ios_base::sync_with_stdio(false)
#define f first
#define s second
#define NMAX 5000000
#define MOD 1000000007

stringstream ss;

int n,m,i,j,f[100010],b[100010],v[100010],F[100010],k[100010];
bool amb=false;


int main()
{
    iOS;
    cin.tie( NULL );

    #ifndef ONLINE_JUDGE
        ifstream cin(".in");
    #endif

    cin>>n>>m;
    for( i = 1 ; i <= n ; i++ )
        cin>>f[ i ];

    for( i = 1 ; i <= m ; i++ )
        cin>>b[ i ];

    for( i = 1 ; i <= n ; i++ )
    {
        v[ f[ i ] ]++;
    }

    for( i = 1 ; i <= n ; i++ )
    {
        F[ f[ i ] ] = i;
    }

    for( i = 1 ; i <= m ; i++ )
    {
        if( F[ b[ i ] ] == 0 )
        {
            cout<<"Impossible";
            return 0;
        }
        if( v[ b[ i ] ] > 1 )
        {
            amb = true;
        }
    }
    if(amb)
    {
        cout<<"Ambiguity";
        return 0;
    }

    cout<<"Possible\n";
    for( i = 1 ; i <= m ; i++ )
        cout<<F[ b [ i ] ]<<' ';



return 0;
}