やるだけ
- class BirthdayReminders {
- public:
- vector <string> remind(vector <string> friendNames, vector <int> birthDates, int currentDate, vector <string> occasions, vector <int> days, int k)
- {
- vector< vector<int> > v;
- const int N = friendNames.size();
- const int M = occasions.size();
- for (int i = 0; i < N; ++i) {
- for (int j = 0; j < M; ++j) {
- int m = currentDate - birthDates[i];
- int n = m / days[j] + (bool)(m % days[j]);
- for (int loop = 100; loop--; ++n) {
- int D = birthDates[i] + n * days[j];
- vector<int> u;
- u.push_back(D);
- u.push_back(j);
- u.push_back(i);
- u.push_back(n);
- v.push_back(u);
- }
- }
- }
- sort(v.begin(), v.end());
- char buff[1000];
- vector<string> ret;
- for (int i = 0; i < k; ++i) {
- sprintf(buff, "%d. %s %s (%d)", v[i][0], friendNames[v[i][2]].c_str(), occasions[v[i][1]].c_str(), v[i][3]);
- ret.push_back(string(buff));
- }
- return ret;
- }
- };