#include <bits/stdc++.h> using namespace std; vector<vector<string>> count(vector<vector<string>> list){ map<string,string> um; vector<vector<string>> ans; vector<vector<string>> result; for(int i=0;i<list.size();i++){ if(um.find(list[i][2])==um.end()){ um[list[i][2]]=list[i][0]; ans.push_back(list[i]); } } for(int i=0;i<ans.size();i++){ string str1; //string num2; str1.push_back(ans[i][0][10]); str1.push_back(ans[i][0][11]); str1.push_back(ans[i][0][13]); str1.push_back(ans[i][0][14]); int num1=stoi(str1); string str2; //string num2; str2.push_back(ans[i][1][10]); str2.push_back(ans[i][1][11]); str2.push_back(ans[i][1][13]); str2.push_back(ans[i][1][14]); int num2=stoi(str2); for(int j=0;j<ans.size();j++){ string str3; //string num2; str3.push_back(ans[j][0][10]); str3.push_back(ans[j][0][11]); str3.push_back(ans[j][0][13]); str3.push_back(ans[j][0][14]); int num3=stoi(str3); string str4; //string num2; str4.push_back(ans[j][1][10]); str4.push_back(ans[j][1][11]); str4.push_back(ans[j][1][13]); str4.push_back(ans[j][1][14]); int num4=stoi(str4); if(num1<=num3 &&num2>=num4){ ans[j][0]=ans[i][0]; ans[j][1]=ans[i][1]; ans[j][2]=ans[i][2]; } } } map<string,string> m; for(int i=0;i<ans.size();i++){ if(m.find(ans[i][0])==m.end()){ m[ans[i][0]]=ans[i][1]; result.push_back(ans[i]); } } return result; } int main() { vector<string> single; vector<vector<string>> list; list = {{"20-jan-23 23:00","20-jan-23 23:15","15"}, {"20-jan-23 23:00","20-jan-23 23:15","15"}, {"20-jan-23 23:00","20-jan-23 23:15","15"}, {"20-jan-23 23:20","20-jan-23 23:55","35"}, {"20-jan-23 23:20","20-jan-23 23:55","35"}, {"20-jan-23 23:55","21-jan-23 00:18","23"}, {"21-jan-23 00:20","21-jan-23 00:37","17"}, {"21-jan-23 00:20","21-jan-23 00:37","17"}, {"21-jan-23 00:38","21-jan-23 02:10","92"}, {"21-jan-23 00:38","21-jan-23 02:10","92"}, {"21-jan-23 00:38","21-jan-23 02:10","92"}, {"21-jan-23 00:38","21-jan-23 02:10","92"}, {"21-jan-23 02:10","21-jan-23 02:18","8"}, {"21-jan-23 02:22","21-jan-23 02:35","13"}, {"21-jan-23 02:36","21-jan-23 02:48","12"}, {"21-jan-23 02:36","21-jan-23 02:48","12"}, {"21-jan-23 02:48","21-jan-23 03:33","45"}, {"21-jan-23 02:48","21-jan-23 03:33","45"}, {"21-jan-23 02:20","21-jan-23 03:35","75"}, {"21-jan-23 02:20","21-jan-23 03:35","75"}, {"21-jan-23 03:36","21-jan-23 03:49","13"}, {"21-jan-23 03:49","21-jan-23 04:12","23"}, {"21-jan-23 03:49","21-jan-23 04:12","23"}, {"21-jan-23 04:12","21-jan-23 04:42","30"}, {"21-jan-23 04:12","21-jan-23 04:42","30"}, {"21-jan-23 04:43","21-jan-23 05:05","22"}, {"21-jan-23 03:49","21-jan-23 05:15","86"}, {"21-jan-23 03:49","21-jan-23 05:15","86"}, {"21-jan-23 03:49","21-jan-23 05:35","106"}, {"21-jan-23 05:36","21-jan-23 06:10","34"}, {"21-jan-23 05:36","21-jan-23 06:10","34"}, {"21-jan-23 06:10","21-jan-23 07:20","70"} }; vector<vector<string>> ans = count(list); int sum=0; for(int i=0;i<ans.size();i++){ cout<<ans[i][0]<<" "<<ans[i][1]<<" "<<ans[i][2]<<endl; sum+=stoi(ans[i][2]); } cout<<"Total sleep duration : "<<sum; return 0; }
## Reference: [1] https://www.techiedelight.com/find-minimum-number-of-coins-that-make-given-value/ [2] https://www.techiedelight.com/minimum-number-coins-change-making-problem/ [3] https://www.techiedelight.com/find-minimum-number-of-coins-that-make-a-change/