exam algorithm