This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
bool canParkCar(const string &parking, int m) {
int n = parking.size();
vector<bool> occupied(n, false);
for (int i = 0; i < n; ++i) {
occupied[i] = parking[i] == 'X';
}
for (int i = 0; i < m; ++i) {
if (i >= n) break;
if (occupied[i]) continue;
// Check for motorcycle
if (occupied[i] == false) {
occupied[i] = true;
}
}
// Check for available parking for the car
for (int i = 0; i < n - 1; ++i) {
if (!occupied[i] && !occupied[i + 1]) {
return true;
}
}
return false;
}
string canParkSequence(string parking, string queue) {
string result;
int m = queue.size();
// Check before any vehicles enter
result += canParkCar(parking, 0) ? 'Y' : 'N';
for (int i = 0; i < m; ++i) {
if (queue[i] == 'M') {
parking += 'M'; // Simulate motorcycle parking
} else {
parking += 'C'; // Simulate car parking
}
if (canParkCar(parking, i + 1)) {
result += 'Y';
} else {
result += 'N';
}
}
return result;
}
int main() {
int t;
cin >> t;
while (t--) {
string parking, queue;
cin >> parking >> queue;
cout << canParkSequence(parking, queue) << endl;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |