Submission #1285819

#TimeUsernameProblemLanguageResultExecution timeMemory
1285819muhammad-mutahirArranging Shoes (IOI19_shoes)C++20
30 / 100
39 ms6512 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; long long mergeAndCount(vector<pair<int, int>>& arr, int left, int mid, int right) { vector<pair<int, int>> temp; long long inversions = 0; int i = left, j = mid + 1; while (i <= mid && j <= right) { if (arr[i] <= arr[j]) { temp.push_back(arr[i++]); } else { temp.push_back(arr[j++]); inversions += (mid - i + 1); } } while (i <= mid) { temp.push_back(arr[i++]); } while (j <= right) { temp.push_back(arr[j++]); } for (int k = 0; k < temp.size(); ++k) { arr[left + k] = temp[k]; } return inversions; } long long mergeSortAndCount(vector<pair<int, int>>& arr, int left, int right) { long long inversions = 0; if (left < right) { int mid = left + (right - left) / 2; inversions += mergeSortAndCount(arr, left, mid); inversions += mergeSortAndCount(arr, mid + 1, right); inversions += mergeAndCount(arr, left, mid, right); } return inversions; } long long countInversions(vector<pair<int, int>>& arr) { return mergeSortAndCount(arr, 0, arr.size() - 1); } long long count_swaps(vector<int> s) { vector<pair<int,int>>ord; int p1 = 1; int p2 = 2; for(int i :s){ if(i<=0){ ord.push_back({abs(i),p1}); p1+=2; } else{ ord.push_back({i,p2}); p2+=2; } } // for(auto i:) return countInversions(ord); } // int main(){ // cout<<count_swaps({-1,1,-1,1})<<endl; // }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...