#include <vector>
#include <string>
#include <map>
#include <sstream>
#include <iostream>
using namespace std;
vector<int> evaluate_deployments(vector<string> deployments) {
vector<int> results(3, 0);
for(const string& deployment : deployments) {
if(deployment.find("deployment_id") == string::npos ||
deployment.find("status") == string::npos) {
results[2]++;
continue;
}
size_t id_pos = deployment.find("d-");
if(id_pos == string::npos) {
results[2]++;
continue;
}
string id = deployment.substr(id_pos, 12);
if(id.length() != 12 || id.substr(0,2) != "d-") {
results[2]++; // Error count
continue;
}
bool valid_id = true;
for(int i = 2; i < 12; i++) {
if(!isalnum(id[i]) || isupper(id[i])) {
valid_id = false;
break;
}
}
if(!valid_id) {
results[2]++;
continue;
}
// Extract and validate status
size_t status_pos = deployment.find("status");
size_t success_pos = deployment.find("Success");
size_t fail_pos = deployment.find("Fail");
if(success_pos != string::npos) {
results[0]++; // Successful count
}
else if(fail_pos != string::npos) {
results[1]++; // Failed count
}
else {
results[2]++; // Error count
}
}
return results;
}
int main() {
return 0;
}