7个WA的点都是 输出合法,但最终的序列不升序。 本地测试样例可以通过
#include <bits/stdc++.h>
using namespace std;
long long m, n;
int dis = 0;
double badth[1005];
long long oper[1000005];
int main()
{
cin >> m >> n;
for (int nn = 1; nn <= n; nn++)
{
double a[1005], b[1005];
double avea = 0.0, aveb = 0.0;
for (int i = 1; i <= m; i++)
{
cin >> a[i];
avea += a[i];
}
for (int i = 1; i <= m; i++)
{
cin >> b[i];
aveb += b[i];
}
avea /= (double)m;
aveb /= (double)m;
double siga = 0.0;
double sigb = 0.0;
for (int i = 1; i <= m; i++)
{
siga += (a[i] - avea) * (a[i] - avea);
}
siga = siga / (double)m;
for (int i = 1; i <= m; i++)
{
sigb += (b[i] - aveb) * (b[i] - aveb);
}
sigb = sigb / (double)m;
badth[nn] = siga + sigb;
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n - i; j++)
{
if (badth[j] > badth[j + 1])
{
oper[++dis] = j;
double temp;
temp = badth[j];
badth[j] = badth[j + 1];
badth[j + 1] = temp;
}
}
}
cout << dis << endl;
for (int i = 1; i <= dis; i++)
cout << oper[i] << " " << oper[i] + 1 << endl;
return 0;
}