제출 #1191334

#제출 시각아이디문제언어결과실행 시간메모리
1191334oguzhan09Mountains (NOI20_mountains)C++20
70 / 100
2094 ms7372 KiB
#include<bits/stdc++.h> #define ll long long using namespace std; int main(){ int n; cin>>n; vector<ll>l(n); ll enb=0; ll say=0; for(int i=0;i<n;i++){ cin>>l[i]; enb=max(enb,l[i]); } if(is_sorted(l.begin(),l.end())){ cout<<0<<endl; return 0; } if(enb==1){ bool seen=false; ll pref[n]; ll suf[n]; pref[0]=0; if(l[0]==0) pref[0]++; for(int i=1;i<n;i++){ pref[i]=pref[i-1]; if(l[i]==0) pref[i]++; } /* for(int x:pref) cout<<x<<" "; cout<<endl;*/ suf[n-1]=0; if(l[n-1]==0) suf[n-1]++; for(int i=n-2;i>=0;i--){ suf[i]=suf[i+1]; if(l[i]==0) suf[i]++; } /*for(int x:suf){ cout<<x<<" "; } cout<<endl;*/ for(int i=0;i<n;i++){ if(l[i]==1){ say+=suf[i]*pref[i]; } } cout<<say<<endl; return 0; } for(int i=1;i<n-1;i++){ ll sol_say=0,sag_say=0; for(int j=0;j<i;j++){ if(l[j]<l[i]) sol_say++; } for(int j=i+1;j<n;j++){ if(l[j]<l[i]) sag_say++; } say+=sol_say*sag_say; } cout<<say<<endl; }
#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...