제출 #305409

#제출 시각아이디문제언어결과실행 시간메모리
305409knon0501Arranging Shoes (IOI19_shoes)C++14
50 / 100
38 ms9080 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; int c[2005]; queue<int> a[2005],b[2005]; long long count_swaps(std::vector<int> s) { int i,j; long long ans=0; int n=s.size(); for(i=0 ; i<n ; i++){ if(s[i]>0) a[s[i]].push(i); else b[-s[i]].push(i); } for(i=0 ; i<n ; i+=2){ int k=0; int t=1e9; for(j=1 ; j*2<=n ; j++){ if(!a[j].empty()){ int x=a[j].front(); int y=b[j].front(); int xx=x-i+c[x]; int yy=y-i+c[y]-(x>y); if(xx+yy<t){ t=xx+yy; k=j; } } } for(j=a[k].front() ; j>=0 ; j--)c[j]++; for(j=b[k].front() ; j>=0 ; j--)c[j]++; a[k].pop(); b[k].pop(); ans+=t; } return ans; }
#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...