标签:acm c++ codeforces
#include <iostream> #include <cstdio> #include <cstring> #include <climits> #include <algorithm> #define N 5005 using namespace std; int mi[N][N],ma[N][N],num[N],cnt,ans=INT_MAX; int main() { int n; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&num[i]); for(int i=0;i<n;i++) for(int j=0;j<n;j++) { if(num[j]>num[i]) ma[i][j]=1; if(num[j]<num[i]) mi[i][j]=1; if(j) ma[i][j]+=ma[i][j-1],mi[i][j]+=mi[i][j-1]; } int cur=0; for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(i<j&&num[i]>num[j]) cur++; for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) { if(num[i]<num[j]) continue; int temp=cur; temp+=(mi[j][j-1]-mi[j][i]+ma[i][j-1]-ma[i][i]); temp-=(ma[j][j-1]-ma[j][i]+mi[i][j-1]-mi[i][i]); temp--; if(ans==temp) cnt++; else if(ans>temp) ans=temp,cnt=1; } cout<<ans<<" "<<cnt<<endl; return 0; }
Codeforces 362C. Insertion Sort【构造】
标签:acm c++ codeforces
原文地址:http://blog.csdn.net/u013912596/article/details/39005037