Submission #1400918

#TimeUsernameProblemLanguageResultExecution timeMemory
1400918jeid12Arranging Shoes (IOI19_shoes)C++20
50 / 100
1096 ms1960 KiB
#include <bits/stdc++.h>
using namespace std;


long long count_swaps(vector<int> s)
{
    int m=s.size();

    vector<bool> used(m,false);

    long long ans=0;


    for(int step=0; step<m/2; step++)
    {
        int l=0;

        // find first unused shoe
        while(used[l])
            l++;


        int r=l+1;

        // find matching shoe
        while(s[r]!=-s[l] || used[r])
            r++;


        // count unused shoes between them
        for(int i=l+1;i<r;i++)
        {
            if(!used[i])
                ans++;
        }


        // if right shoe comes first
        if(s[l]>0)
            ans++;


        used[l]=true;
        used[r]=true;
    }


    return ans;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...