P7773,roman_sum 中取不到 str[0]。求助
#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int read()
{
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0' && ch<='9')
x=x*10+ch-'0',ch=getchar();
return x*f;
}
void write(int x)
{
if(x<0)
putchar('-'),x=-x;
if(x>9)
write(x/10);
putchar(x%10+'0');
return;
}
const int maxN = 1E2+10;
const string roman_num[maxN] = {"","I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII","XIII","XIV","XV","XVI","XVII","XVIII","XIX","XX","XXI","XXII","XXIII","XXIV","XXV","XXVI","XXVII","XXVIII","XXIX","XXX","XXXI","XXXII","XXXIII","XXXIV","XXXV","XXXVI","XXXVII","XXXVIII","XXXIX","XL","XLI","XLII","XLIII","XLIV","XLV","XLVI","XLVII","XLVIII","XLIX","L","LI","LII","LIII","LIV","LV","LVI","LVII","LVIII","LIX","LX","LXI","LXII","LXIII","LXIV","LXV","LXVI","LXVII","LXVIII","LXIX","LXX","LXXI","LXXII","LXXIII","LXXIV","LXXV","LXXVI","LXXVII","LXXVIII","LXXIX","LXXX","LXXXI","LXXXII","LXXXIII","LXXXIV","LXXXV","LXXXVI","LXXXVII","LXXXVIII","LXXXIX","XC","XCI","XCII","XCIII","XCIV","XCV","XCVI","XCVII","XCVIII","XCIX","C"};
string roman_sum(string str){
string sum(5,'0');
char ch;
for(int i = 0; i < str.size(); ++ i,ch = str[i]){
if(ch=='I')++ sum[0];
if(ch=='V')++ sum[1];
if(ch=='X')++ sum[2];
if(ch=='L')++ sum[3];
if(ch=='C')++ sum[4];
}
return sum;
}
signed main(){
string romanum;
cin>>romanum;
string rs = roman_sum(romanum);
cout<<rs<<endl;
for(int i = 1; i < maxN-10; ++ i)if(roman_sum(roman_num[i])==rs){
cout<<roman_num[i];
return 0;
}
return 0;
}
感谢