fork download
  1. #include <vector>
  2. #include <string>
  3. #include <map>
  4. #include <sstream>
  5. #include <iostream>
  6. using namespace std;
  7.  
  8. vector<int> evaluate_deployments(vector<string> deployments) {
  9. vector<int> results(3, 0);
  10.  
  11. for(const string& deployment : deployments) {
  12.  
  13. if(deployment.find("deployment_id") == string::npos ||
  14. deployment.find("status") == string::npos) {
  15. results[2]++;
  16. continue;
  17. }
  18.  
  19.  
  20. size_t id_pos = deployment.find("d-");
  21. if(id_pos == string::npos) {
  22. results[2]++;
  23. continue;
  24. }
  25.  
  26. string id = deployment.substr(id_pos, 12);
  27.  
  28. if(id.length() != 12 || id.substr(0,2) != "d-") {
  29. results[2]++; // Error count
  30. continue;
  31. }
  32.  
  33.  
  34. bool valid_id = true;
  35. for(int i = 2; i < 12; i++) {
  36. if(!isalnum(id[i]) || isupper(id[i])) {
  37. valid_id = false;
  38. break;
  39. }
  40. }
  41. if(!valid_id) {
  42. results[2]++;
  43. continue;
  44. }
  45.  
  46. // Extract and validate status
  47. size_t status_pos = deployment.find("status");
  48. size_t success_pos = deployment.find("Success");
  49. size_t fail_pos = deployment.find("Fail");
  50.  
  51. if(success_pos != string::npos) {
  52. results[0]++; // Successful count
  53. }
  54. else if(fail_pos != string::npos) {
  55. results[1]++; // Failed count
  56. }
  57. else {
  58. results[2]++; // Error count
  59. }
  60. }
  61.  
  62. return results;
  63. }
  64.  
  65.  
  66.  
  67. int main() {
  68.  
  69.  
  70. return 0;
  71. }
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
Standard output is empty