#1494 · HUTECH IT OFFICE TOUR

MÔ TẢ BÀI TOÁN

IT OFFICE TOUR là một hoạt động thường niên của Khoa CNTT HUTECH dành cho sinh viên đang học môn công tác kỹ sư. Chương trình giúp sinh viên có được những trải nghiệm thực tế về công việc và môi trường làm việc tại các công ty CNTT, giao lưu, học hỏi và chuẩn bị những kiến thức kỹ năng cần thiết ngay từ năm đầu tiên.

1700448000798.jpg

Yêu cầu: Trong một chuyến tham quan đến doanh nghiệp, có N sinh viên đăng ký tham gia. Để dễ dàng kiểm soát, BTC yêu cầu các sinh viên đăng ký tham gia phải xếp thành 1 hàng. Trước khi bắt đầu hành trình, Thầy Khoa muốn chọn ra đủ ít nhất X bạn nam và cũng ít nhất Y bạn nữ để chụp ảnh lưu niệm mà không muốn làm xáo trộn thứ tự ban đầu. Hãy cho biết số lượng sinh viên ít nhất Thầy Khoa có thể chọn được thỏa mãn?

Dữ liệu vào

  • Dòng 1: Chứa 3 số nguyên: N X Y cách nhau bằng khoảng trắng. Trong đó, N là số lượng sinh viên, X là số bạn nam và Y là số bạn nữ cần lấy.
  • Dòng 2: Chứa N số nguyên liên tiếp 0 hoặc 1 cách nhau bằng kí tự khoảng trắng. Trong đó 0 đại diện là các bạn nữ và 1 là các bạn nam.

Dữ liệu ra

  • Số nguyên duy nhất chứa tổng số sinh viên tìm được, sao cho có ít nhất X bạn Nam và ít nhất Y bạn Nữ.
  • Nếu không thỏa mãn yêu cầu tìm kiếm ghi số 0.

Ràng buộc

BẢNG TỔNG QUAN KẾT QUẢ

# Tài khoản Kết suất Lúc nộp
1
10 ms 632 KB
919 Bytes
21/11/2023
19:17
2
12 ms 564 KB
1053 Bytes
01/12/2023
08:13
3
Lê Duy Hải @2280600799
14 ms 648 KB
2459 Bytes
15/01/2025
23:45
4
Lê Duy Hải @2280600799
14 ms 652 KB
2372 Bytes
15/01/2025
23:45
5
Lê Duy Hải @2280600799
15 ms 648 KB
2000 Bytes
15/01/2025
23:46
6
Lê Duy Hải @2280600799
15 ms 648 KB
2459 Bytes
15/01/2025
23:46
7
Lê Duy Hải @2280600799
15 ms 652 KB
2247 Bytes
15/01/2025
23:45
8
16 ms 652 KB
1170 Bytes
04/09/2025
07:46
9
17 ms 1348 KB
914 Bytes
05/03/2024
00:45
10
17 ms 1356 KB
910 Bytes
05/03/2024
00:54
11
18 ms 1356 KB
910 Bytes
05/03/2024
00:46
12
18 ms 1356 KB
910 Bytes
05/03/2024
00:46
13
18 ms 1356 KB
922 Bytes
05/03/2024
00:48
14
18 ms 1360 KB
910 Bytes
05/03/2024
00:48
15
18 ms 1364 KB
910 Bytes
05/03/2024
00:48
16
B
Trần Gia Bảo @2380600172
19 ms 572 KB
961 Bytes
03/01/2025
18:04
17
23 ms 628 KB
741 Bytes
12/04/2024
22:07
18
H
23 ms 632 KB
560 Bytes
15/05/2024
20:08
19
A
Lê Đức Anh @2280600056
23 ms 632 KB
1172 Bytes
02/11/2024
00:59
20
H
Võ Thanh Hà @2280600789
24 ms 624 KB
696 Bytes
14/05/2024
12:53

LỊCH SỬ CÁ NHÂN

Vui lòng đăng nhập để xem lịch sử làm bài của bạn.

THẢO LUẬN BÀI TOÁN

N
Lê Thành Nhân @2280618755
2 năm trước

test case số 11

em có thắc mắc ở test case số 11, với dữ liệu đầu vào:

15 4 7

0 1 0 0 1 1 1 0 0 1 1 1 0 0 0

Với y = 7, nếu muốn lấy đủ 7 sinh viên nữ thì ta phải duyệt mảng đến index 14. Nếu kết quả là 13 (như trong test case) thì y chỉ bằng 6

Mã nguồn của em để xử lý riêng test case 11 như sau:

include<bits/stdc++.h>

using namespace std; int main(){

long long int n,x,y;
cin >> n >> x >> y;
int a[n];


for(long long int i=0;i<n;i++){
	cin >> a[i];
}

long long int cntx=0,cnty=0;
int fullx=0,fully=0;
int posx=0,posy=0;
int active=0;
for(long long int i=0;i<=n;i++){
	if(fullx==1 && fully==1){
		//cout << "du x,y";
		active=1;
		break;
	}
	if(a[i]==1 && fullx==0){
		cntx++;
		if(cntx==x){
			fullx=1;
			//cout << "da full x" << endl;
			posx=i+1;
		}
	}
	if(a[i]==0 && fully==0){
		cnty++;	 
		if(cnty==y){
			fully=1;
			//cout << "da full y" << endl;
			posy=i+1;
			
		}
	}
}

if(active==0){
	cout << "0";
}else{
	if(posx > posy){
		cout << posx;
	}else{
		cout << posy;
	}
}

}

Vào thảo luận 0 Phản hồi

GỢI Ý & HƯỚNG DẪN

  • Giải thích ví dụ 1: 1 0 0 1 1 0 1 0

Để chọn ít nhất 2 bạn Nam, 2 bạn nữ Thầy Khoa có thể chọn từ đầu hàng và đến bạn thứ 4. Nên ghi ra tổng số: 4 sinh viên được chọn

  • Giải thích ví dụ 2: 1 0 0 0 0 0 1 0 1 0

Để chọn ít nhất 3 bạn Nam, 2 bạn nữ Thầy Khoa có thể chọn từ đầu hàng và đến bạn thứ 9.Nên ghi ra tổng số: 9 sinh viên được chọn

  • Giải thích ví dụ 3: Để chọn ít nhất 2 bạn Nam, 3 bạn nữ Thầy Khoa không có cách chọn (vì không đủ số lượng nữ). Nên ghi ra 0
Viết code