感觉比较难对 first1 和 end1 的分析不能写错了。我就不擅长这种分析。#includebits/stdc.h using namespace std; int main() { int n, m, flag 0; cin n m; vectorint a(n); vectorint v; for(int i 0; i n; i ) { cin a[i]; if(a[i] m) flag 1; } int max1 0; if(flag 0) { for(int i 0; i n; i ) max1 max(a[i], max1); cout max1; } else { for(int i 0; i n; i ) { if(a[i] m) continue; int first1 i; int end1 i; while(end1 1 n a[end1 1] m) end1 ; i end1 1; cout [ first1 , end1 ] endl; } } return 0; }