《程序设计语言综合设计》第二周上机练习——4 美丽数列
1 #include<math.h> 2 #include<iostream> 3 using namespace std; 4 int main() 5 { 6 int n,s=0,i,j,k,a[300000]; 7 cin>>n; 8 for(i=0;i<n;i++) cin>>a[i]; 9 for(i=0;i<n;i++) 10 { 11 k=(n-1+abs(n-1-2*i))/2; 12 if(a[i]<k) continue; 13 for(j=0;j<i;j++) 14 if(a[j]<j) break; 15 if(j!=i) continue; 16 for(j=n-1;j>i;j--) 17 if(a[j]<n-j-1) break; 18 if(j!=i) continue; 19 break; 20 } 21 if(i<n) cout<<"Yes"<<endl; 22 else cout<<"No"<<endl; 23 }
简化后的代码
1 #include<iostream> 2 using namespace std; 3 int n,a[100000],i; 4 int main() 5 { 6 cin>>n; 7 for(i=0;i<n;i++) cin>>a[i]; 8 for(i=0;i<=(n-1)/2;i++) 9 if(a[i]<i||a[n-i-1]<i) break; 10 if(i==(n+1)/2) cout<<"Yes"; 11 else cout<<"No"; 12 return 0; 13 }