Submission #55476952


Source Code Expand

#include<bits/stdc++.h>
#define L(i, j, k) for(int i = (j); i <= (k); ++i)
#define R(i, j, k) for(int i = (j); i >= (k); --i)
#define ll long long
#define vi vector <int> 
#define sz(a) ((int) (a).size())
#define me(f, x) memset(f, x, sizeof(f))
using namespace std;
const int N = 1 << 20;

int n, a[N];

template < int N > struct fenwt {
	using F = long long ;
	F a[N + 1];
	void add (int x, F w) {
		for (; x <= N; x += x & -x) a[x] += w;
	}
	F query (int x) {
		F ret = 0;
		for (; x; x -= x & -x) ret += a[x];
		return ret;
	}
	F get (int l, int r) {
		if(l > r) return 0;
		return query (r) - query (l - 1);
	}
} ;

fenwt < N > A;

ll ns[N], f[N];
void Main () {
	cin >> n;
	L(i, 1, n) cin >> a[i];
	vector<int> inva(n + 1);
	for (int i = 1; i <= n; ++i) inva[a[i]] = i;
	for (int i = 1; i <= n; ++i) a[i] = inva[i];

	ns[0] = 0;
	L(i, 1, n) f[i] = i - 1 - (a[i] - 1) * 2; 
	
	R(i, n, 1) ns[0] += A.query(a[i]),  A.add(a[i], 1); 
	L(i, 1, n) A.add(a[i], -1);
	
	sort(f + 1, f + n + 1), reverse(f + 1, f + n + 1);
	L(i, 1, n) 
		ns[i] = ns[i - 1] - (i - 1) - f[i];
	ll res = numeric_limits<ll>::max();
	L(i, 0, n) 
	  res = min(res, ns[i]);
	cout << res << '\n';
}

int main () {
	ios :: sync_with_stdio(false);
	cin.tie (0); cout.tie (0);
	
	int t = 1;
	while (t--) Main ();
	
	return 0;
}

Submission Info

Submission Time
Task D - Almost Bubble Sort
User Petr
Language C++ 20 (gcc 12.2)
Score 2000
Code Size 1356 Byte
Status AC
Exec Time 145 ms
Memory 28304 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 2000 / 2000
Status
AC × 4
AC × 97
Set Name Test Cases
Sample 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 00-sample-004.txt
All 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 00-sample-004.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt, 01-029.txt, 01-030.txt, 01-031.txt, 01-032.txt, 01-033.txt, 01-034.txt, 01-035.txt, 01-036.txt, 01-037.txt, 01-038.txt, 01-039.txt, 01-040.txt, 01-041.txt, 01-042.txt, 01-043.txt, 01-044.txt, 01-045.txt, 01-046.txt, 01-047.txt, 01-048.txt, 01-049.txt, 01-050.txt, 01-051.txt, 01-052.txt, 01-053.txt, 01-054.txt, 01-055.txt, 01-056.txt, 01-057.txt, 01-058.txt, 01-059.txt, 01-060.txt, 01-061.txt, 01-062.txt, 01-063.txt, 01-064.txt, 01-065.txt, 01-066.txt, 01-067.txt, 01-068.txt, 01-069.txt, 01-070.txt, 01-071.txt, 01-072.txt, 01-073.txt, 01-074.txt, 01-075.txt, 01-076.txt, 01-077.txt, 01-078.txt, 01-079.txt, 01-080.txt, 01-081.txt, 01-082.txt, 01-083.txt, 01-084.txt, 01-085.txt, 01-086.txt, 01-087.txt, 01-088.txt, 01-089.txt, 01-090.txt, 01-091.txt, 01-092.txt, 01-093.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 1 ms 3432 KiB
00-sample-002.txt AC 1 ms 3512 KiB
00-sample-003.txt AC 1 ms 3456 KiB
00-sample-004.txt AC 1 ms 3516 KiB
01-001.txt AC 1 ms 3468 KiB
01-002.txt AC 1 ms 3468 KiB
01-003.txt AC 1 ms 3648 KiB
01-004.txt AC 1 ms 3536 KiB
01-005.txt AC 17 ms 6324 KiB
01-006.txt AC 127 ms 24960 KiB
01-007.txt AC 22 ms 7224 KiB
01-008.txt AC 145 ms 28000 KiB
01-009.txt AC 145 ms 28164 KiB
01-010.txt AC 145 ms 28004 KiB
01-011.txt AC 69 ms 28132 KiB
01-012.txt AC 71 ms 28108 KiB
01-013.txt AC 89 ms 28184 KiB
01-014.txt AC 125 ms 27992 KiB
01-015.txt AC 134 ms 28228 KiB
01-016.txt AC 139 ms 28120 KiB
01-017.txt AC 141 ms 28112 KiB
01-018.txt AC 104 ms 27952 KiB
01-019.txt AC 110 ms 27840 KiB
01-020.txt AC 93 ms 27968 KiB
01-021.txt AC 121 ms 28020 KiB
01-022.txt AC 89 ms 28004 KiB
01-023.txt AC 124 ms 28144 KiB
01-024.txt AC 85 ms 27972 KiB
01-025.txt AC 134 ms 28040 KiB
01-026.txt AC 81 ms 28020 KiB
01-027.txt AC 138 ms 27936 KiB
01-028.txt AC 80 ms 28060 KiB
01-029.txt AC 141 ms 28104 KiB
01-030.txt AC 97 ms 27908 KiB
01-031.txt AC 95 ms 27948 KiB
01-032.txt AC 89 ms 28056 KiB
01-033.txt AC 85 ms 28032 KiB
01-034.txt AC 82 ms 28056 KiB
01-035.txt AC 80 ms 27924 KiB
01-036.txt AC 84 ms 27912 KiB
01-037.txt AC 84 ms 27928 KiB
01-038.txt AC 100 ms 28016 KiB
01-039.txt AC 103 ms 27976 KiB
01-040.txt AC 105 ms 28228 KiB
01-041.txt AC 110 ms 27952 KiB
01-042.txt AC 107 ms 28180 KiB
01-043.txt AC 113 ms 28184 KiB
01-044.txt AC 111 ms 28304 KiB
01-045.txt AC 113 ms 28224 KiB
01-046.txt AC 113 ms 27892 KiB
01-047.txt AC 116 ms 28224 KiB
01-048.txt AC 110 ms 27956 KiB
01-049.txt AC 105 ms 27952 KiB
01-050.txt AC 96 ms 28024 KiB
01-051.txt AC 105 ms 28044 KiB
01-052.txt AC 108 ms 27908 KiB
01-053.txt AC 117 ms 27924 KiB
01-054.txt AC 111 ms 27976 KiB
01-055.txt AC 111 ms 27952 KiB
01-056.txt AC 112 ms 27948 KiB
01-057.txt AC 111 ms 27948 KiB
01-058.txt AC 113 ms 28156 KiB
01-059.txt AC 115 ms 27920 KiB
01-060.txt AC 98 ms 28048 KiB
01-061.txt AC 99 ms 27876 KiB
01-062.txt AC 99 ms 28172 KiB
01-063.txt AC 101 ms 28232 KiB
01-064.txt AC 104 ms 28204 KiB
01-065.txt AC 107 ms 28156 KiB
01-066.txt AC 110 ms 28072 KiB
01-067.txt AC 112 ms 27904 KiB
01-068.txt AC 114 ms 28092 KiB
01-069.txt AC 117 ms 27988 KiB
01-070.txt AC 121 ms 28112 KiB
01-071.txt AC 124 ms 27860 KiB
01-072.txt AC 127 ms 28112 KiB
01-073.txt AC 133 ms 27904 KiB
01-074.txt AC 101 ms 27940 KiB
01-075.txt AC 114 ms 28056 KiB
01-076.txt AC 115 ms 27916 KiB
01-077.txt AC 116 ms 27956 KiB
01-078.txt AC 110 ms 27952 KiB
01-079.txt AC 103 ms 27916 KiB
01-080.txt AC 114 ms 27924 KiB
01-081.txt AC 117 ms 27932 KiB
01-082.txt AC 118 ms 27964 KiB
01-083.txt AC 116 ms 27956 KiB
01-084.txt AC 105 ms 28056 KiB
01-085.txt AC 113 ms 27932 KiB
01-086.txt AC 115 ms 27900 KiB
01-087.txt AC 118 ms 27952 KiB
01-088.txt AC 118 ms 27900 KiB
01-089.txt AC 103 ms 28072 KiB
01-090.txt AC 110 ms 27936 KiB
01-091.txt AC 112 ms 27952 KiB
01-092.txt AC 116 ms 28064 KiB
01-093.txt AC 117 ms 27912 KiB