01 #include <cstdio> 02 using namespace std; 03 int n; 04 int a[100]; 05 int main() { 06 scanf("%d", &n); 07 for (int i = 1; i <= n; ++i) scanf("%d", &a[i]); 08 int ans = 1; 09 for (int i = 1; i <= n; ++i) { 10 if (i > 1 && a[i] < a[i - 1]) ans = i; 11 while (ans < n && a[i] >= a[ans + 1]) ++ans; 12 printf("%d\n", ans); 13 } 14 return 0; 15 }
1. 程序输出的 ans 一定大于 i 。( )
2. 程序输出的 ans 小于等于 n 。( )
3. 若将 if (i > 1 && a[i] < a[i - 1]) 的 < 改为 != 程序输出的结果不会改变。( )
4. 当程序执行到 printf("%d\n", ans); 时,若 ans - i > 2 ,则 a[i+1] <= a[i] 。( )
5. 若输入的 a 数组是一个严格单调递增的数列,此程序的时间复杂度是 ( )
6. 最坏情况下,此程序的时间复杂度为:( )