JustOj 2042: Dada的游戏

时间:2023-03-08 23:56:24
JustOj  2042: Dada的游戏
题目描述

Dada无聊时,喜欢做一个游戏,将很多钱分成若干堆排成一列,每堆钱数不固定,谁能找出每堆钱数严格递增的最长区间,谁就是人生赢家了。Dada可能脑子里的水还没干,她找不出来,你来帮她找找吧。

输入

多组输入,至文件结尾。
对于每组数据:
第一行包含一个正整数n(1<=n<=100000),一共有n堆钱。
第二行输入n个正整数a1,a2,...,an (1<=ai<=1000000000),代表每一堆的钱数
大量输入,请使用scanf。

输出

打印严格递增的最长区间的长度

样例输入
5
1 7 2 11 15
6
100 100 100 100 100 100
3
1 2 3
样例输出
3
1
3 题解:遍历整个区间当后一个比前一个大的话就让一个计数器++;当后一个比前一个小的时候,把计数器的值和最大值进行
比较并且把计数器置为1,再向后面遍历(PS:因为要连续的所以既然后一个比前一个小,当然就直接从当前去找就好了,
回去的话肯定没有有现在最大值的大,所以把i置为j的值)
 #include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
#include <queue>
using namespace std;
#define lowbit(x) (x&(-x))
#define max(x,y) (x>y?x:y)
#define min(x,y) (x<y?x:y)
#define MAX 100000000000000000
#define MOD 1000000007
#define pi acos(-1.0)
#define ei exp(1)
#define PI 3.141592653589793238462
#define INF 0x3f3f3f3f3f
#define mem(a) (memset(a,0,sizeof(a)))
typedef long long ll;
ll gcd(ll a,ll b){
return b?gcd(b,a%b):a;
}
bool cmp(int x,int y)
{
return x>y;
}
const int N=;
const int mod=1e9+; int main()
{
int n,a[N];
while(scanf("%d",&n)!=EOF){
for(int i=;i<n;i++)
scanf("%d",&a[i]);
int maxx=,i,j;
for(i=;i<n-maxx;){
int temp=;
for(j=i+;j<n;j++){
if(a[j]>a[j-]) temp++;
else break;
}
if(temp>maxx) maxx=temp;
i=j;
}
printf("%d\n",maxx);
}
return ;
}