30分求助
查看原帖
30分求助
311234
Hardy_Wang楼主2022/10/20 00:52

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;
}
2022/10/20 00:52
加载中...