Submission #494494

#TimeUsernameProblemLanguageResultExecution timeMemory
494494ammar2000Mountains (NOI20_mountains)C++17
79 / 100
2087 ms8992 KiB
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define F first
#define S second
#define coy cout<<"YES\n"
#define con cout<<"NO\n"
#define co1 cout<<"-1\n"
using namespace std;
const int SI=3e5+7;
ll INF=8e18+7;
int MOD=1e9+7;
ll n,a[SI],masr[SI],an[SI],ans;
map <ll,ll> mp;
int main()
{
   cin>>n;
   bool fl=0;
   for (int i=0;i<n;i++)
    {cin>>a[i];
    if (i&&a[i]<a[i-1])
        fl=1;}
    if (fl==0)
    {
        cout << 0;
        return 0;
    }
    if (n>10010)
    {for (int i=0;i<n;i++)
    {
        for (int t=0;t<a[i];t++)
            an[i]+=mp[t];
        mp[a[i]]++;
    }
    mp.clear();
    for (int i=n-1;i>=0;i--)
    {
        for (int t=0;t<a[i];t++)
            masr[i]+=mp[t];
        mp[a[i]]++;
    }
    for (int i=0;i<n;i++)
        ans+=masr[i]*an[i];
    cout <<ans ;}
    else
    {
        for (int i=1;i<n-1;i++)
   {
       ll f,s;
       f=s=0;
       for (int r=0;r<i;r++)
        f+=(a[i]>a[r]);
       for(int r=i+1;r<n;r++)
        s+=(a[i]>a[r]);
        ans+=f*s;
   }
   cout <<ans;
    }
   return 0;
}

Compilation message (stderr)

Mountains.cpp: In function 'int main()':
Mountains.cpp:53:8: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   53 |        for(int r=i+1;r<n;r++)
      |        ^~~
Mountains.cpp:55:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   55 |         ans+=f*s;
      |         ^~~
#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...