刚没学几天,还请赐教
#include<bits/stdc++.h>
using namespace std;
struct p{
int a,b;
};
p pe[1005][1005];
struct l{
int id;
float s;
};
l line[1005];
int res[1005*1005][2];
float cal(int x,int y){
return (x-y)*(x-y)*1.0;
}
int main()
{
int m,n;
cin >> m >> n;
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++)
cin >> pe[i][j].a;
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++)
cin >> pe[i][j].b;
for(int i = 1; i <= n; i ++){
float ave_a = 0, ave_b = 0;
for(int j = 1; j <= m; j ++){
ave_a += pe[i][j].a;
ave_b += pe[i][j].b;
}
ave_a /= m*1.0, ave_b /= m*1.0;
line[i].id = i;
for(int j = 1; j <= m; j ++){
line[i].s += cal(pe[i][j].a, ave_a) + cal(pe[i][j].b, ave_b);
}
line[i].s /= m*1.0;
}
// for(int i = 1; i <= n; i ++) cout << line[i].s << " ";
// cout << endl;
int cnt = 0;
for(int i = 1; i <= n; i ++){
for(int j = 1; j < n-i+1; j ++){
if(line[j].s >= line[j+1].s){
cnt ++;
res[cnt][0] = line[j].id;
res[cnt][1] = line[j+1].id;
swap(line[j],line[j+1]);
}
}
}
// for(int i = 1; i <= n; i ++) cout << line[i].s << " ";
// cout << endl;
cout << cnt << endl;
for(int i = 1; i <= cnt; i ++){
cout << res[i][0] << " " << res[i][1] << endl;
}
return 0;
}