The condition will fail if they the logic used is different, or the coding style is different.
It should report if someone exactly replicates the logic but changes the variable names and add extra space and comments to escape from the fast inspection nature of the human(i.e the staff members)
And i believe if someone can change the programming constructs altogether, then he need not be considered as a copier. because the assignment is aimed at checking his/her programming ability, so when he can change the constructs used in the program altogether then that should be fine..
Note: it would be fine if our application could detect the similar flow like the following, i.e just changing the looping construct but rest of them remains the same.