제출 #1289001

#제출 시각아이디문제언어결과실행 시간메모리
1289001eri16Group Photo (JOI21_ho_t3)C++20
5 / 100
5092 ms724 KiB
#include <bits/stdc++.h> using namespace std; int countInversions(vector<int>& arr) { int inv_count = 0; int n = arr.size(); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (arr[i] > arr[j]) { inv_count++; } } } return inv_count; } int solve_perm(vector <int> v){ vector <pair<int,int>> tm; for (int i=0; i<v.size(); i++){ tm.push_back({v[i],i}); } int mn=INT_MAX; sort(tm.begin(),tm.end()); do { int ans=1; for (int i=1; i<tm.size(); i++){ if (tm[i].first+2<=tm[i-1].first){ ans=0; } } if (ans==1){ vector<int> permutation; for (auto& p : tm) { permutation.push_back(p.second); } int swaps = countInversions(permutation); mn = min(mn, swaps); /* if (mn==swaps){ for (int i=0; i<tm.size(); i++){ cout<<tm[i].first<<' '; } cout<<swaps<<"\n"; }*/ } } while (next_permutation(tm.begin(), tm.end())); return mn; } int main(){ int n; cin>>n; vector <int> v(n); for (int i=0; i<n; i++){ cin>>v[i]; } cout<<solve_perm(v); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...