int num[10000000] = {0}; intmain() { int n1, n2; cin >> n1 >> n2; for (int i = 1; i <= n1; i++) { cin >> num[i]; } int sum = 0; int max = 0; for (int i = 0; i < n2; i++) { for (int j = max; j <= n1; j++) //这里的j=max是优化的一个点 { if (i >= num[j]) { max = j; //看了很多遍输出分析才知道,下标才是最重要的 } else { break; } } sum += max; } cout << sum; return0; }