Submission #877072

#TimeUsernameProblemLanguageResultExecution timeMemory
877072raul2008487Arranging Shoes (IOI19_shoes)C++17
0 / 100
1067 ms348 KiB
#include "shoes.h" #include<bits/stdc++.h> #define ll long long #define pb push_back #define all(v) v.begin(), v.end() #define fi first #define se second #define in insert using namespace std; const int sz = 2e5+5; ll Tree[sz]; void add(ll pos, ll val){ for(ll i = pos; i<sz ; i += (i & (-i))){ Tree[i] += val; } } ll get(ll pos){ ll rx = 0; for(ll i = pos; i>0; i -= (i & (-i))){ rx += Tree[i]; } return rx; } ll ask(ll l, ll r){ return get(r) - get(l-1); } long long count_swaps(vector<int> s) { ll n = s.size(), i, j, ans = 0; set<pair<int,int>> c; for(i=0;i<n;i++){ c.in({s[i], i}); add(i+1, 1); } while(c.size()){ auto x = c.begin(); pair<int,int> fr = (*x); auto f = c.lower_bound({-fr.fi, fr.se}); int pr = (*f).se; if(pr >= (fr.se + 2)){ ans += ask(fr.se+2, pr); } if(fr.fi > 0){ ans++; } add(fr.fi+1, -1); add(pr+1, -1); c.erase(x); c.erase(f); } return ans; }

Compilation message (stderr)

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:28:22: warning: unused variable 'j' [-Wunused-variable]
   28 |  ll n = s.size(), i, j, ans = 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...