vector<int> numberOfLines(vector<int>& widths, string S) { map<char, int> MAP; MAP.insert(make_pair('a', widths[0])); MAP.insert(make_pair('b', widths[1])); MAP.insert(make_pair('c', widths[2])); MAP.insert(make_pair('d', widths[3])); MAP.insert(make_pair('e', widths[4])); MAP.insert(make_pair('f', widths[5])); MAP.insert(make_pair('g', widths[6])); MAP.insert(make_pair('h', widths[7])); MAP.insert(make_pair('i', widths[8])); MAP.insert(make_pair('j', widths[9])); MAP.insert(make_pair('k', widths[10])); MAP.insert(make_pair('l', widths[11])); MAP.insert(make_pair('m', widths[12])); MAP.insert(make_pair('n', widths[13])); MAP.insert(make_pair('o', widths[14])); MAP.insert(make_pair('p', widths[15])); MAP.insert(make_pair('q', widths[16])); MAP.insert(make_pair('r', widths[17])); MAP.insert(make_pair('s', widths[18])); MAP.insert(make_pair('t', widths[19])); MAP.insert(make_pair('u', widths[20])); MAP.insert(make_pair('v', widths[21])); MAP.insert(make_pair('w', widths[22])); MAP.insert(make_pair('x', widths[23])); MAP.insert(make_pair('y', widths[24])); MAP.insert(make_pair('z', widths[25])); int line = 0; int linewidth = 0; for (auto c : S) { int wid = MAP[c]; linewidth += wid; if (linewidth > 100) { line++; linewidth = wid; } } vector<int> R; R.push_back(line + 1); R.push_back(linewidth); return R; }