test case số 11

Lê Thành Nhân  •  11 tháng trước


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;
	}
}

}


Bình luận: