Submission #991345

#TimeUsernameProblemLanguageResultExecution timeMemory
991345MarwenElarbiArranging Shoes (IOI19_shoes)C++17
10 / 100
1 ms432 KiB
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define ll long long
#define pb push_back
const int nax=200005;
long long count_swaps(std::vector<int> s) {
    int n=s.size();
    map<int,queue<int>> mp;
    bool vis[n];
    memset(vis,0,sizeof vis);
    for (int i = 0; i < n; ++i)
    {
        mp[s[i]].push(i);
    }
    long long ans=0;
    for (int i = 0; i < n; ++i)
    {
        if(vis[i]) continue;
        auto u=mp[-s[i]].front();
        mp[-s[i]].pop();
        mp[s[i]].pop();
        vis[i]=vis[u]=true;
        ans+=(u-i-1)+(s[i]>0);  
    }
    return ans;
}
/*int main() {
    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif
    int n;
    assert(1 == scanf("%d", &n));
    vector<int> S(2 * n);
    for (int i = 0; i < 2 * n; i++)
        assert(1 == scanf("%d", &S[i]));
    fclose(stdin);

    long long result = count_swaps(S);

    printf("%lld\n", result);
    fclose(stdout);
    return 0;
}*/
#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...