zoukankan      html  css  js  c++  java
  • Insertion Sort

    http://codeforces.com/problemset/problem/362/C

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <algorithm>
     4 using namespace std;
     5 const int maxn = 5000 + 5;
     6 const int INF = 1<<30;
     7 int a[maxn], sum[maxn][maxn], sum2[maxn][maxn];
     8 int main() {
     9     int n;
    10     scanf("%d", &n);
    11     for(int i = 0;i < n; i++) 
    12         scanf("%d", &a[i]);
    13     for(int i = 0;i < n; i++) {
    14         sum[i][i] = 0;
    15         for(int j = i+1;j < n; j++) {
    16             sum[i][j] = sum[i][j-1];
    17             if(a[j] < a[i])
    18                 sum[i][j]++;
    19         }
    20         sum2[i][i] = 0;
    21         for(int j = i-1;j >= 0; j--) {
    22             sum2[i][j] = sum2[i][j+1];
    23             if(a[i] > a[j])
    24                 sum2[i][j]++;
    25         }
    26     }
    27     int tot = 0;
    28     for(int i = 0;i < n; i++) {
    29         for(int j = i+1;j < n; j++) if(a[i] > a[j])
    30             tot++;
    31     }
    32     int mn = INF, ans = 0;
    33     for(int i = 0;i < n; i++) {
    34         for(int j = i+1;j < n; j++) {
    35             int cur = tot + (j-i) - 2*sum[i][j-1] + 2*sum2[j][i+1] - (j-i);
    36             if(a[i] > a[j]) cur--;
    37             else    cur++;
    38             if(cur < mn) {
    39                 mn = cur; ans = 1;
    40             }
    41             else if(cur == mn)  ans++;
    42         }
    43     }
    44     printf("%d %d
    ", mn, ans);
    45     return 0;
    46 }
    View Code
  • 相关阅读:
    Segment Routing之IPv6 SR概述
    ping6 connect: Invalid argument
    glance image-list
    SRv6技术研究和组网设计
    physical_interface_mappings
    bond
    srv6 tools---SRext
    srv6
    8月18号
    8月17号
  • 原文地址:https://www.cnblogs.com/CrazyBaby/p/5696905.html
Copyright © 2011-2022 走看看