An exact algorithm for orthogonal 2-D cutting problems using guillotine cuts