TLE TLE 大佬们有什么办法提高效率吗(c而非c++
#include<stdio.h>int main(){
int h,p,q,n,a;
while(scanf("%d%d%d%d",&h,&p,&q,&n)!=EOF){
int b=h,a[300005]={},x=0;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
b+=a[i];
if(b>=q){
printf("up\n");
x=1;
break;}
else if(b<=p){
printf("down\n");
x=1;
break;}
}
if(!x){
if(!(b-h)) printf("No\n");
else if((b-h)>0) printf("up\n");
else printf("down\n");
}
}
return 0;
}
水库预测-version1
时间限制:1000ms 内存限制:65536kb
题目描述
在一次旅行中,小p来到一个水库。这个水库当前水位为 h,并且有两个警戒线,分别为最低水位警戒线 p与最高水位警戒线 q。当水库的水线低于(含达到)水位警戒线 p时,将触发低水位预警;超过(含达到)最高水位警戒线 q时,将触发高水位预警。在小 P于此处停留的一天中共观察水库 n次,并将每次水库水线相于上次观察的变化值 ai记录下来。小 P想知道,假设水库每天的水线都会如此变化,那么从小 P观察的那一天开始(含这一天),哪种预警将在这个水库中最早出现?
注:水位线可以为负值,小 P观察的那一天记为第 0 天。
输入
本题为不定组输入,对于每一组输入:第一行输入三个整数,分别为 h,p,q,保证 0<p<h<q≤2×109。
第二行输入一个整数,为 n,保证0<n≤3×105。
第三行输入 n个整数,分别为 a1,a2,...,an,保证 −2×109≤ai≤2×109。
保证所有组输入中 n 之和不超过 3×105。
输出
对于每一组输入,共输出一行字符串。如果预警为超过最高(含达到)水位警戒线,则输出up;如果预警为低于(含达到)最低水位警戒线,则输出down;如果始终没有出现预警,则输出 No。
输入样例
5 2 10
2
3 -1
5 2 10
2
3 -3
5 2 10
2
-3 4
输出样例
up
No
down