Đề bài: rạp chiếu phim có số chỗ ngồi là mảng 2 chiều (chỗ đã được ngồi là 1, chỗ chưa được ngồi là 0), Nhập vào số học sinh và điền tên, và tìm cho họ chỗ ngồi thích hợp.
Input:
3 4
0001
1010
0110
7
Nguyen Thanh Phuoc Loc
Vu Ngoc Quoc Khanh
Nguyen Thanh An
Rickie Lukas
Ly Dinh Minh Man
Doan Viet Tien Dat
Doan Anh Tuan
Output:
Nguyen Thanh Phuoc Loc 1 3
Vu Ngoc Quoc Khanh 3 1
Nguyen Thanh An 1 1
Rickie Lukas 2 2
Ly Dinh Minh Man 3 4
Doan Viet Tien Dat 1 2
Doan Anh Tuan 2 4
Em có dòng code sau:
#include <vector>
#include <iostream>
#include <string>
using namespace std;
typedef pair<int, int> ii;
const int N = 100 + 7; // max student
int numRow, numCol, numStudent;
vector<ii> slot;
// rapphim
signed main() {
freopen("rapphim.inp", "r", stdin);
freopen("rapphim.out", "w", stdout);
cin >> numRow >> numCol;
char table[numCol + 1]; // lỗi ở đây
for (int i = 1; i <= numRow; i++) {
cin >> table;
for (int j = 1; j <= numCol; j++) {
if (table[j - 1] == '0') {
slot.push_back(ii(i, j));
}
}
}
cin >> numStudent;
string studentName;
getline(cin, studentName); // getting rid of redundant space
for (int i = 1; i <= numStudent; i++) {
ii availableSlot = slot[i - 1];
getline(cin, studentName);
cout << studentName << " " << availableSlot.first << " " << availableSlot.second << "\n";
}
return 0;
}
Mảng ký tự char[] bắt buộc cần constant value mà em cho vào numCol thì không được thì mình có cách nào lấy từng phần tử của string ra xét giá trị không ạ?