Submission #257750

#TimeUsernameProblemLanguageResultExecution timeMemory
257750peti1234Arranging Shoes (IOI19_shoes)C++17
10 / 100
4 ms4992 KiB
#include <bits/stdc++.h> using namespace std; #define lsb(i) ((i) & -(i)) const int c=200002; int n, t[c], k; long long ans; vector<int> sz[c]; vector<int> x; int ask(int a) { int sum=0; while(a) sum+=t[a], a-=lsb(a); return sum; } int add(int a) { while(a<=n) t[a]++, a+=lsb(a); } long long count_swaps(vector<int> s) { n=s.size(), k=n/2; for (int i=0; i<n; i++) { int x=s[i], y=abs(x)+k, h=i+1; if (x<0) x*=-1, swap(x, y); if(sz[y].size()) { int pos=sz[y].back(); sz[y].pop_back(); if (x>k) ans++; ans+=ask(h)-ask(pos); add(pos); } else sz[x].push_back(h), add(h); } return ans; } /* int main() { cin >> n; for (int i=0; i<2*n; i++) { int a; cin >> a; x.push_back(a); } cout << count_swaps(x); return 0; } */

Compilation message (stderr)

shoes.cpp: In function 'int add(int)':
shoes.cpp:17:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
#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...