diff --git a/exercises-cpp/jimoh_yusuf/ex01_basics/src/main.cpp b/exercises-cpp/jimoh_yusuf/ex01_basics/src/main.cpp
index d9d675ca..f81f98ed 100644
--- a/exercises-cpp/jimoh_yusuf/ex01_basics/src/main.cpp
+++ b/exercises-cpp/jimoh_yusuf/ex01_basics/src/main.cpp
@@ -86,5 +86,23 @@ int main(int argc, char* argv[]) {
     }
     std::map<std::string, int> wordCount = countWordOccurrences(inputFilePath);
 
+    if (wordCount.empty()) {
+        std::cerr << "Error: No valid words found in the file" << std::endl;
+        return 1;
+    }
+
+    // Sort word-count pairs in descending order of usage
+    std::vector<std::pair<std::string, int> > sortedWordCount(wordCount.begin(), wordCount.end());
+    std::sort(sortedWordCount.begin(), sortedWordCount.end(), [](const auto& a, const auto& b) {
+        return a.second > b.second; // Sort by count in descending order
+    });
+
+    const std::string outputFilePath = "results.txt";
+    if (!writeResultsToFile(sortedWordCount, outputFilePath)) {
+        return 1; // Return error code if writing to file fails
+    }
+
+    std::cout << "Results written to " << outputFilePath << std::endl;
+    return 0;
 }