在自己的devc++是可以正常通过样例,而到luogu样例都没过。这是为什么啊?
比较位数,如果相等则从最大位开始比较
#include <iostream>
using namespace std;
const int N = 110;
int arr[N], maxp[N]; // arr临时 [1, ..] //maxp[0]为数字的位数 + 1
int n, id;
int main() {
cin >> n;
(void)getchar(); // 吃掉输入n后的\n
for (int i = 1; i <= n; i++) {
int m = 1;
char ch;
while ((ch = getchar()) != '\n' && ch != ' ') {
arr[m++] = ch - '0'; //读入
}
bool preWin = true; // maxp不需要替换则true
if (m == maxp[0]) {
for (int k = 1; k < m; k++) {
if (maxp[k] > arr[k]) {
break;
} else if (maxp[k] < arr[k]) {
preWin = false;
break;
}
}
}
if (maxp[0] < m || !preWin) {
maxp[0] = m;
id = i;
for (int j = 1; j < m; j++)
maxp[j] = arr[j];
}
}
cout << id << endl;
for (int i = 1; i < maxp[0]; i++)
cout << maxp[i];
return 0;
}