Submission #233584

#TimeUsernameProblemLanguageResultExecution timeMemory
233584BasilhijazArranging Shoes (IOI19_shoes)C++17
15 / 100
38 ms3196 KiB
#include "bits/stdc++.h"

using namespace std;
typedef long long ll;

#define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define mp make_pair
#define pb push_back
#define lp(i,s,f) for(ll i = s; i < ll(f); i++)
#define inF freopen("input.in", "r", stdin);
#define outF freopen("output.in", "w", stdout);
#define endl '\n'
#define MOD 1000000007

long long count_swaps(vector<int> s) {
    ll n = s.size();
    if(s.size() > 2000){
        n/=2;
        return n*(n - 1)/2;
    }
    vector<pair<int, int> > v;
    bool done[n];
    for(int i = 0; i < n; i++){
        done[n] = 0;
    }
    for(int i = 0; i < n; i++){
        if(!done[i]){
            int serach = s[i]*-1;
            int first = -1; int second = -1;
            first = i;
            for(int j = i + 1; j < n; j++){
                if(s[j] == serach && !done[j]){
                    second = j;
                    done[j] = 1;
                    break;
                }
            }
            v.pb({first, second});
        }
    }
    ll ans = 0;
    for(int i = 0; i < n; i++){
        done[n] = 0;
    }
    int pos[n];
    for(int i = 0; i < n; i++){
        pos[i] = -1;
    }
    for(int i = 0; i < v.size(); i++){
        pos[v[i].second] = v[i].first;
    }
    for(int i = 0; i < n/2; i++){
        for(int j = v[i].first + 1; j < v[i].second; j++){
            if(pos[j] == -1 || pos[j] > v[i].first)ans++;
        }
    }
	return ans;
}



Compilation message (stderr)

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:49:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < v.size(); i++){
                    ~~^~~~~~~~~~
#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...