Example:
name[ ] = "Ada" "Alan" "Grace" "John"
a["Ada"] = "", a["Alan"] = "", a["Grace"] = "", a["John"] = ""
// Read and process line 2
for ( int i = 0; i < N; i++ )
{
src = name[i]; // This was the name opposite to the input
cin >> dest;
// Has src been assigned/mapped ?
if ( a[src] == "" )
a[src] = dest; // No, now src is mapped
// Check for self-mapped violations
if ( src == dest )
{
cout << "bad" << endl;
exit(0);
}
// Check for a <--> b violations
if ( a[dest] != "" ) // dest is already assigned
{
if ( a[dest] != src ) // Then dest MUST be assigned to src
{
cout << "bad" << endl;
exit(0);
}
}
}
|