Ừ nhỉ, em nhầm. Lại còn phải tính nv1 của các bạn nv2 nữa nhỉ. Thế thì thuật toán này phức tạp lắm. Em chưa hình dung ra nổi.
Em nghĩ thuật toán nó sẽ chạy như này:
Dữ liệu toàn bộ của sở chạy lần 0: lọc danh sách thí sinh đăng ký vào từng trường và lên điểm cho các thí sinh, các nguyện vọng để chạy cho vòng thứ 1.
1. Vòng chạy thứ nhất nhập điểm vàng cho nv1 (điểm vàng có thể hiểu là tỉ lệ cố định nào đó ví dụ 70%) --- Điểm dự kiến.
Từ điểm dự kiến của vòng 1 sẽ xác định các em đỗ NV1 lần 1. Nếu đỗ nv1 lần 1 thì giữ kết quả chạy vào dữ liệu và loại bỏ các em này ra khỏi NV2 và NV3.
2. Vòng chạy thứ 2 chỉ còn các em NV1, NV2, NV3 chưa đỗ, cộng với điểm vừa chạy vòng 1, chạy tiếp. Ra kết quả bổ xung NV1 và kết quả lấy thêm NV1 (bổ xung) và NV2 ---> bỏ bớt được nhóm các em đỗ thêm NV1 và NV2. Tại vòng này xác định được các em đỗ NV1 (bổ xung) và NV2
3. Vòng chạy thứ 3 là phần còn lại của NV1 chưa đỗ, NV2 chưa đỗ và NV3 chưa đỗ nv nào ở hai vòng trên.
....