阿卡分糖果

在这里插入图片描述

输入
第一行,一个整数 n,表示胜利者的人数。
第二行,n 个整数,第 i 个数 Ai,表示第 i 位胜利者分到的糖果数

输出
共一行,一个整数,表示胜利者们不开心的程度。

3
3 3 2

2

在这里插入图片描述

#include <iostream>
#include <cstdio>
#define N 1500000
using namespace std;
long long Mx,Mn;
long long a[N];
int n;
int main() 
{
    
    
  scanf("%d",&n);
  for(int i=1; i<=n; i++) scanf("%d",&a[i]);
   
  for(int i=1; i<=n; i++)  
  {
    
    
  int l,r;
  l=r=1;
  for(int j=i-1; j>=1; j--) 
  {
    
    
    if(a[j]>=a[i])break;
    l++;
  }
  for(int j=i+1; j<=n; j++) {
    
    
    if(a[j]>a[i])break;
    r++;
  }
  Mx+=(l*r*a[i]);
  l=r=1;
  for(int j=i-1; j>=1; j--) {
    
    
    if(a[j]<=a[i])break;
    l++;
  }
  for(int j=i+1; j<=n; j++) {
    
    
    if(a[j]<a[i])break;
    r++;
  }
  Mn+=(l*r*a[i]); 
  }
  cout<<Mx-Mn;
}

猜你喜欢

转载自blog.csdn.net/yhhy666/article/details/108227834
今日推荐