Submission #729505

#TimeUsernameProblemLanguageResultExecution timeMemory
729505vjudge1Arranging Shoes (IOI19_shoes)C++17
10 / 100
1 ms212 KiB
#include "shoes.h"
#include<bits/stdc++.h>
#define INF 1e9+7
#define ll long long
#define ull unsigned ll
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pcc pair<char,char>
#define pdd pair<long double,long double>
#define pipii pair<int,pii>
#define plpll pair<ll,pll>
#define vi vector<int>
#define vvi vector<vi>
#define v3i vector<vvi>
#define v4i vector<v3i>
#define fi first
#define se second
#define mp make_pair
#define eb emplace_back
#define ins insert
#define ln '\n'
#define all(v) v.begin(),v.end()

using namespace std;

ll count_swaps(vi s){
    int res=0;
    int n=s.size();
    map<int,set<int>>v;
    for(int i=0;i<n;++i){
        v[s[i]].ins(i);
    }
    int color[n];
    memset(color,0,sizeof(color));
    for(int i=0;i<n;++i){
        if(color[i]) continue;
        int k=-s[i];
        int t=*v[k].lower_bound(i);
        color[t]=1;
        res+=t-i;
        //cout<<i<<" "<<t<<ln;
        if(s[i]<0) res--;
        v[k].erase(t);
    }
	return res;
}
#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...