解题思路:
注意事项:
参考代码:
#include<iostream> using namespace std; const int M=50000+2; int a[M]={0}; int check(int i,int j) { int Max,Min; Max=Min=a[i]; for(int k=i;k<=j;k++) { if(a[k]>Max) Max=a[k]; if(a[k]<Min) Min=a[k]; if((Max-Min)>(j-i)) return 0; } if((Max-Min)==(j-i)) return 1; else return 0; } int main() { int n; while(cin>>n) { for(int i=0;i<n;i++) { cin>>a[i]; } int ans=0; for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if(check(i,j)) ans++; } } cout<<ans+n<<endl; } return 0; }
0.0分
0 人评分
简单的a+b (C语言代码)浏览:667 |
C语言程序设计教程(第三版)课后习题9.8 (Java代码)浏览:1636 |
C语言程序设计教程(第三版)课后习题1.6 (C++代码)浏览:889 |
计算质因子 (C++代码)浏览:1618 |
WU-格式化数据输出 (C++代码)浏览:1194 |
Cylinder (C语言描述+详细分析)浏览:3263 |
关于C语言变量位置的问题浏览:272 |
K-进制数 (C语言描述,蓝桥杯)浏览:925 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:560 |
简单的a+b (C语言代码)浏览:944 |