#include<bits/stdc++.h> using namespace std; const int INF = 1e9; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<int> t(n); for(int& i : t) cin >> i; vector<vector<int>> dist(n, vector<int>(n, INF)); for(int i=0;i<n;i++) for(int j=i;j<n;j++) if(i == j) dist[i][j] = 0; else if(t[i] > t[j]) dist[j][i] = dist[i][j] = 1; for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) dist[i][j] = min(dist[i][j], dist[i][k]+dist[k][j]); for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(dist[i][j] == INF) dist[i][j] = 0; vector<int> res(n,0); for(int i=0;i<n;i++) for(int j=0;j<n;j++) res[i] += dist[i][j]; for(int i : res) cout << i << " "; cout << "\n"; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #include<bits/stdc++.h> using namespace std; const int INF = 1e9; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<int> t(n); for(int& i : t) cin >> i; vector<vector<int>> dist(n, vector<int>(n, INF)); for(int i=0;i<n;i++) for(int j=i;j<n;j++) if(i == j) dist[i][j] = 0; else if(t[i] > t[j]) dist[j][i] = dist[i][j] = 1; for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) dist[i][j] = min(dist[i][j], dist[i][k]+dist[k][j]); for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(dist[i][j] == INF) dist[i][j] = 0; vector<int> res(n,0); for(int i=0;i<n;i++) for(int j=0;j<n;j++) res[i] += dist[i][j]; for(int i : res) cout << i << " "; cout << "\n"; return 0; } |