online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
/****************************************************************************** Online C++ Compiler. Code, Compile, Run and Debug C++ program online. Write your code in this editor and press "Run" button to compile and execute it. *******************************************************************************/ #include <bits/stdc++.h> using namespace std; class LogMessage{ public: string sourceName; string content; LogMessage(string sourceName, string content) { this->sourceName = sourceName; this->content = content; } }; class Solution { private: bool check(unordered_map<string, vector<string>>&m, int mid, int maxSize) { int trucateMessageCount = 0; for(auto it = m.begin(); it!=m.end(); it++) { if (it->second.size() > mid) { trucateMessageCount += mid; } else { trucateMessageCount += it->second.size(); } } if (trucateMessageCount <= maxSize) { return true; } return false; } public: vector<LogMessage*>solve(vector<LogMessage*>&logMessages, int maxSize) { unordered_map<string, vector<string>>m; for(int i=0;i<logMessages.size();i++) { string sourceName = logMessages[i]->sourceName; string content = logMessages[i]->content; m[sourceName].push_back(content); } int l = 1, r = 1E5; int X; while(l<=r) { int mid = l + (r-l)/2; if (check(m, mid, maxSize)) { X = mid; l = mid+1; }else { r = mid-1; } } vector<LogMessage*>ans; for(auto it = m.begin(); it!=m.end(); it++) { string sourceName = it->first; for(int i=0;i<min((int)X, (int)it->second.size());i++) { string content = it->second[i]; ans.push_back(new LogMessage(sourceName, content)); } } return ans; } }; int main() { LogMessage* m1 = new LogMessage("source_a", "m"); LogMessage* m2 = new LogMessage("source_a", "m"); LogMessage* m3 = new LogMessage("source_b", "m"); vector<LogMessage*>v = {m1, m2, m3}; int maxSize = 2; Solution* solution = new Solution(); vector<LogMessage*> ans = solution->solve(v, maxSize); for(int i=0;i<ans.size();i++) { cout<<ans[i]->sourceName<<" "<<ans[i]->content<<endl; } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue