LJX的校园:体育课
LJX的校园:体育课
难度级别:C; 运行时间限制:16ms; 运行空间限制:456KB; 代码长度限制:2000000B
试题描述
LJX特别特别特别喜欢上体育课,因为上体育课可以七(qie)窍(qie)生(si)烟(yu)。体育课总是可以自由活动。而当力大无穷的绿箭侠弄坏了足球以后,体育老师不单单罚绿箭侠跑10000圈,还从此让LJX他们班(也就是二年级(2)班)每天体育课上练习枯燥无味的队列了……今天,是LJX第一次上“新版”的体育课。体育老师让所有人站成一排。由于无聊,LJX就想在只有A+B的oj上出一道题:一堆人站成一排,由于体育老师太严格,大家都不敢回头。所以,每个人只能看见前面比自己矮的人,求所有人能看到其他人的人数之和。(LJX貌似应该排第一个,班平均身高0.8M)
输入
* 第一行:一个正整数N,表示一共有N个小盆友
* 第二行:N个正整数,表示N个小朋友的身高
输出
* 一个数:表示所有人能看到其他人的人数之和
输入示例
6
10 3 7 4 12 2
输出示例
5
其他说明
1≤N≤80,000
1≤hi≤1,000,000,000
1 #include<iostream> 2 using namespace std; 3 int a[1000]; 4 int main() 5 { 6 int n,i,j,sum=0; 7 cin>>n; 8 for(i=0;i<n;i++) cin>>a[i]; 9 for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(a[i]>a[j]) sum++;else break;}} 10 cout<<sum; 11 return 0; 12 }
这道题容易超时,我在oj上交了好几遍超时,
下面是超时的
#include<iostream> using namespace std; int a[100000000]; int main() { int n,i,j,sum=0,cnt=0; cin>>n; for(i=0;i<n;i++) cin>>a[i]; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(a[i]>a[j]) sum++; else break; } } cout<<sum; return 0; }