Submission #719167

#TimeUsernameProblemLanguageResultExecution timeMemory
719167AndrijaMArranging Shoes (IOI19_shoes)C++14
85 / 100
29 ms2512 KiB
#include <bits/stdc++.h> using ll=long long; using namespace std; ll count_swaps(vector<int> a) { ll n = a.size(); ll ans = 0; if(n<=2010) { bool vis[n]; memset(vis,0,sizeof vis); for(ll i=0;i<n;i++) { if(vis[i])continue; ll j=i+1; ll val=0; while(a[j]!=-a[i] || vis[j]) { if(!vis[j])val++; j++; } if(a[i]>0) { ans+=val+1; } else { ans+=val; } vis[i]=vis[j]=true; } } else { vector<int>v; for(ll idx=0;idx<n;idx++) { if(a[idx]<0) v.push_back(idx); } sort(v.begin(),v.end()); ll k=0; for(ll idx=0;idx<v.size();idx++) { ans+=abs(v[idx]-k); k+=2; } } return ans; }

Compilation message (stderr)

shoes.cpp: In function 'll count_swaps(std::vector<int>)':
shoes.cpp:46:25: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |         for(ll idx=0;idx<v.size();idx++)
      |                      ~~~^~~~~~~~~
#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...