Submission #233589

#TimeUsernameProblemLanguageResultExecution timeMemory
233589BasilhijazArranging Shoes (IOI19_shoes)C++17
45 / 100
38 ms2040 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; } for(int i = 0; i < n/2; i++){ if(s[v[i].first] > s[v[i].second]){ ans++; } } 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; pos[v[i].first] = v[i].first; } sort(v.begin(), v.end()); for(int i = 0; i < v.size(); i++){ for(int j = v[i].first + 1; j < v[i].second; j++){ if(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:54:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < v.size(); i++){
                    ~~^~~~~~~~~~
shoes.cpp:59: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...