第一个错的样本点输入输出都一样(佬可以高抬贵手运行一下),对拍也对拍过了,就是过不了第一第二个样本点 orzorzorzorzorz麻烦各位佬看一下%%%%%%%%%%%% in: 5 98765 12365 87954 1022356 985678 out: 4 1022356 代码如下:```cpp #include <bits/stdc++.h> using namespace std; struct tt { string ss; int id; } s[22]; int cmp(tt s1, tt s2) { if (s1.ss.length() > s2.ss.length()) { // cout << "length>0" << s1.ss.compare(s2.ss) << " s1=" << s1.ss << " s2=" << s2.ss << endl; return 1; } else if (s1.ss.length() == s2.ss.length()) { if (s1.ss.compare(s2.ss) > 0) { // cout << "compare>0" << s1.ss.compare(s2.ss) << " s1=" << s1.ss << " s2=" << s2.ss << endl; return 1; } else { // cout << "compare<0" << s1.ss.compare(s2.ss) << " s1=" << s1.ss << " s2=" << s2.ss << endl; return 0; } } } int main() { string ss1 = "232", ss2 = "231"; // cout << ss1.compare(ss2) << endl; int n; cin >> n;
for (int a1 = 0; a1 < n; a1++)
{
cin >> s[a1].ss;
s[a1].id = a1 + 1;
}
sort(s, s + n, cmp);
// for (int a1 = 0; a1 < n; a1++)
// {
// // cout << s[a1].ss << " ";
// cout << s[a1].id;
// cout << endl;
// }
cout << s[0].id << endl
<< s[0].ss;
return 0;
}