Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <unordered_map>#include <algorithm>#include <vector>#include <string>using namespace std;int romanToInt(string s) {int res = 0;unordered_map<char, int> m{{'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000}};for (int i = 0; i < s.size(); ++i) {int val = m[s[i]];if (i == s.size() - 1 || m[s[i+1]] <= m[s[i]]) res += val;else res -= val;}return res;}struct P {string s;string name;int val;bool operator<(const P &rhs) const {return (name == rhs.name) ? val < rhs.val : name < rhs.name;}};char s1[1000000], s2[10000];int main() {