Submission #570194

#TimeUsernameProblemLanguageResultExecution timeMemory
570194XJP12Mountains (NOI20_mountains)C++14
70 / 100
2073 ms2652 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
int main(){
  ll n;
  cin>>n;
  vector<ll> v(n);
  bool ban=true;
  ll one=0;
  ll zero=0;
  for(ll i=0; i<n; i++){
     cin>>v[i];
     if(v[i]==1){
        one++;
     }
     if(v[i]==0){
        zero++;
     }
     if(i>0 && ban==true){
        if(v[i]<v[i-1]) ban=false;
     }
  }
  if(ban==true){
     cout<<"0"<<endl;
     return 0;
  }
  if(one+zero==n){
   //  cout<<"hello"<<endl;
     ll zerotwo=0;
     ll ans=0;
     for(int i=0; i<n; i++){
        if(v[i]==0){
           zerotwo++;
           continue;
        }else{
           ans+=zerotwo*(zero-zerotwo);
        }
     }
     cout<<ans<<endl;
     return 0;
  }
  ll cont=1;
  ll ans=0;
  ll a,b;
  while(cont<n-1){
     a=0;
     b=0;
     for(ll i=0; i<cont; i++){
        if(v[i]<v[cont]) a++;
     }
     for(ll i=cont+1; i<n; i++){
        if(v[i]<v[cont]) b++;
     }
     ans+=a*b;
     cont++;
  }
  cout<<ans<<endl;
   return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...