test2 WA on 715行求救
查看原帖
test2 WA on 715行求救
743373
Vitamin_B楼主2023/8/31 22:19

link

如果你们看不见代码我就放出来:

# include <bits/stdc++.h>

# define old_six \
	ios::sync_with_stdio (0);\
	\
	cin.tie (0);\
	\
	cout.tie (0);

# define ffor(i,name) \
	for (auto i = name.begin (); i != name.end (); i ++)

# define iter(type) \
	type :: iterator

# define reg register

# define inl inline

using namespace std;

typedef long long ll;

typedef pair <int, int> pii;

typedef pair <ll, ll> pll;

typedef size_t st;

int t, n, a[262150], ans;

bool f;

void merge (int& l, int& mid) {

	reg int i = l, j = mid + 1;

	while (i <= mid)
		swap (a[i], a[j]), ++ i;

	return ;

}

bool stablesort (int l, int r) {

	if (l >= r)
		return 0;

	int mid = (l + r) / 2;

	if (stablesort (l, mid) || stablesort (mid + 1, r))
		return 1;

	if (a[mid] < a[mid + 1])
		return 0;
	else if (a[l] > a[r])
		merge (l, mid), ++ ans;
	else
		return f = 1;

	return 0;

}

int main () {

	old_six

	cin >> t;

	while (t --) {

		cin >> n;

		ans = f = 0;

		for (reg int i = 0; i < n; ++ i)
			cin >> a[i];

		if (stablesort (0, n - 1))
			cout << "-1\n";
		else
			cout << ans << '\n';

	}

	return 0;

}
2023/8/31 22:19
加载中...