1 solutions
-
0
C++ :
#include <iostream> #include <cstdio> using namespace std; const int N = 10010; int n, a[N], q[N], cnt; void msort(int l, int r) { if (l == r) return; int mid = l + r >> 1; int i = l, j = mid + 1, k = l; msort(i, mid); msort(j, r); while (i <= mid && j <= r) { if (a[i] <= a[j]) { q[k++] = a[i++]; } else { q[k++] = a[j++]; cnt += mid - i + 1; } } while (i <= mid) { q[k++] = a[i++]; } while (j <= r) { q[k++] = a[j++]; } for (int i = l; i <= r; i ++) { a[i] = q[i]; } } int main() { cin >> n; for (int i = 1; i <= n; i ++) cin >> a[i]; msort(1, n); cout << cnt; return 0; }
- 1
Information
- ID
- 724
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By