1 条题解
-
0
C :
#include<stdio.h> int N,x,y,Sum=1,k; int main(){ scanf("%d%d",&N,&x); for(int i=2;i<=N;i++){ scanf("%d",&y); if(y>x){//升序k=1 if(k==2||k==0){ k=1; Sum++; x=y; } if(k==1)x=y;//取大 } if(y<x){//降序k=2 if(k==1||k==0){ k=2; Sum++; x=y; } if(k==2)x=y;//取小 } } printf("%d",Sum); }
C++ :
#include <cstdio> #include <algorithm> #include <cstring> using namespace std; int N=0; int nDate_A[1000001]={0},nDate_B[1000001]={0}; int nFlower[1000001]={0}; int nLen_A=1,nLen_B=1,maxx=0; int main(){ scanf("%d",&N); for(int i=1;i<=N;++i){ scanf("%d",&nFlower[i]); } nDate_A[nLen_A]=nFlower[1]; nDate_B[nLen_B]=nFlower[1]; for(int i=2;i<=N;++i){//第A种 if(nLen_A%2==1){ if(nFlower[i]>nDate_A[nLen_A]) nDate_A[++nLen_A]=nFlower[i]; else nDate_A[nLen_A]=nFlower[i]; } else{ if(nFlower[i]<nDate_A[nLen_A]) nDate_A[++nLen_A]=nFlower[i]; else nDate_A[nLen_A]=nFlower[i]; } if(nLen_B%2==1){ if(nFlower[i]<nDate_B[nLen_B]) nDate_B[++nLen_B]=nFlower[i]; else nDate_B[nLen_B]=nFlower[i]; } else{ if(nFlower[i]>nDate_B[nLen_B]) nDate_B[++nLen_B]=nFlower[i]; else nDate_B[nLen_B]=nFlower[i]; } } printf("%d",max(nLen_B,nLen_A)); fclose(stdin); fclose(stdout); return 0; }
- 1
信息
- ID
- 1640
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者