Submission #1224065

#TimeUsernameProblemLanguageResultExecution timeMemory
1224065alexaaaArranging Shoes (IOI19_shoes)C++20
10 / 100
3 ms4936 KiB
#include<iostream> #include<vector> #include<algorithm> #include<set> using namespace std; set<int> wrong_pos; vector<vector<int>> positive(100001); vector<vector<int>> negative(100001); void create_adj(vector<int> &S){ for(int i = 0; i < S.size(); i++){ if(i % 2 == 0 && S[i] < 0){ if(S[i+1] == abs(S[i])){ } else{ wrong_pos.insert(abs(S[i])); negative[abs(S[i])].push_back(i); } } else if(i%2 == 0 && S[i] > 0){ wrong_pos.insert(abs(S[i])); positive[abs(S[i])].push_back(i); } else if(i % 2 != 0 && S[i] > 0){ if(S[i-1] < 0 && abs(S[i-1]) == S[i]){ } else{ wrong_pos.insert(abs(S[i])); positive[abs(S[i])].push_back(i); } } else if(i % 2 != 0 && S[i] < 0){ wrong_pos.insert(abs(S[i])); negative[abs(S[i])].push_back(i); } } } int count_swaps(vector<int> S){ create_adj(S); int swaps = 0; for(auto err:wrong_pos){ for(int i = 0; i < positive[err].size(); i ++){ if(positive[err][i] < negative[err][i]){ swaps += abs(positive[err][i]-negative[err][i]); } else{ swaps += abs(positive[err][i]-negative[err][i])-1; } } } return swaps; }
#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...