。。。。

与题解思路不一样的解法:

#include<bits//stdc++.h>

using namespace std;

long long int Min(long long int a,long long int b)

{

return a<b?a:b;

}

int main()

{

int t,n;

long long int H[50000];

scanf("%d",&t);

for(int x=1;x<=t;x++)

{

scanf("%d",&n);

for(int i=0;i<n;i++) scanf("%lld",&H[i]);

int flag[50000];

memset(flag,0,sizeof(flag));

for(int i=0;i<n-1;i++)

{

int j=i+1;

long long int max=H[j];

flag[i]++;

while(j<n-1&&H[i]>max)

if(Min(H[i],H[++j])>max){

for(int a=i;a<j;a++) flag[a]++;

max=max>H[j]?max:H[j];

}

}

int MAX=0,most;

for(int i=0;i<n-1;i++) if(flag[i]>MAX) {MAX=flag[i];most=i;}

printf("Case #%d: %d %d\n",x,most+2,flag[most]);

}

return 0;

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:11
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务