正文

大兵站队2008-03-23 13:31:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/zhaoyg/33526.html

分享到:

/*问题描述大兵们站成一行横队。排长发出命令:立正!向右看——齐!!唰的一声,所有大兵都向右看。由于大兵们的身高不全相同,向右看的时候就能看到比他矮的士兵的头了。如果他右边有一个人大于等于他的身高,那么他就看不到那个人右边的人了。假设总共n个士兵,第i个士兵看到ki个头,问S=k1+k2+k3+..+kn 输入多组测试数据,第一行是n(1<=n<=1e5),第二行是n个数,表示k1,k2,....,kn,kn范围在1到1e9 输出对于每组数据要输出一行,包含S的值,测试数据保证s<2e9 样例输入21 231 2 333 2 131 1 151 5 2 9 3 样例输出13226 提示对于:51 5 2 9 35看到1;2看到5;9看到1,5,2;3看到9; 难度:easy*/#include <stdio.h> int main(){ int n,a[ 100000]; int MAX,k; long count;  while (scanf("%d",&n)!=EOF) {  MAX=0;  count=0;    for (k=0;k<n;k++)  {   scanf("%d",&a[k ]);    if (k!=0)   {    if (a[ k]>a[ MAX])    {     MAX=k;     count = count+k;    }    else    {     for(int i=k-1;i>=MAX;i--)     {       if (a[i ]<a[k ])       count++;      else      {       count++;       break;      }     }    }   }  }  printf("%d\n",count); }  return 0;}

阅读(2361) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册