제출 #1307770

#제출 시각아이디문제언어결과실행 시간메모리
1307770lufychopArranging Shoes (IOI19_shoes)C++20
50 / 100
1101 ms145864 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; long long n; map<long long,deque<long long>> mp; long long count_swaps(vector<int> s) { n=s.size(); long long ans=0; long long LL=0,RR=n-1; for(int i=0;i<n;i++) { mp[s[i]].push_back(i); } while(LL<RR) { if(s[LL]!=0) { long long tmp=0; long long L=LL+1; long long R=mp[-s[LL]].front(); mp[s[LL]].pop_front(); mp[-s[LL]].pop_front(); for(int i=L;i<=R;i++) { if(s[i]==0) { tmp++; } } ans=ans+R-LL-1-tmp; // cout<<LL<<R<<"\n"; if(s[R]<0) { ans++; } s[R]=0; s[LL]=0; } if(s[RR]!=0) { long long tmp=0; long long L=mp[-s[RR]].back(); long long R=RR-1; mp[-s[RR]].pop_back(); mp[s[RR]].pop_back(); for(int i=L;i<=R;i++) { if(s[i]==0) { tmp++; } } ans=ans+RR-L-1-tmp; // cout<<L<<RR<<"\n"; if(s[L]>0) { ans++; } s[L]=0; s[RR]=0; } // cout<<LL<<RR; LL++; RR--; } 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...