题目 思路: 排序后用内外两个循环遍历,找最大值。 坑点: p的范围是109,所以m*p必须为long long型; 最后找到的最大值下标 j 与最小值下标 i,表示的完美数列中数值个数为 j-i+1; 测试点4超时问题,是由于 j 的赋值,不能在每次找最大值时都进行一次赋值。由于排序已经完成,每次只要 j ++就可以。 AC代码 #include<bits/stdc++.h> using namespace std; int main(