Submission #526467

#TimeUsernameProblemLanguageResultExecution timeMemory
526467DeepessonArranging Shoes (IOI19_shoes)C++17
10 / 100
237 ms156128 KiB
#include <bits/stdc++.h> #include "shoes.h" #define MAX 150000 #define LSB(A) (A&(-A)) int ft[MAX]; void add(int p,int k){ p+=3; while(p<MAX){ ft[p]+=k; p+=LSB(p); } } int query(int p){ p+=3; int ans=0; while(p>0){ ans+=ft[p]; p-=LSB(p); } return ans; } int seg(int l,int r){ return query(r)-query(l-1); } long long num_inversoes(std::vector<int> x){ long long ans=0; for(int i=0;i!=x.size();++i){ ans+=seg(x[i]+1,MAX-3); add(x[i],1); } return ans; } long long count_swaps(std::vector<int> s) { std::vector<int> posicoes; std::vector<int> ordem; std::map<int,std::queue<int>> mapa; for(int i=0;i!=s.size();++i){ if(s[i]>0){ mapa[s[i]].push(i); }else ordem.push_back(i); } for(auto&x:ordem){ posicoes.push_back(x); int val = abs(s[x]); posicoes.push_back(mapa[val].front()); mapa[val].pop(); } return num_inversoes(posicoes); }

Compilation message (stderr)

shoes.cpp: In function 'long long int num_inversoes(std::vector<int>)':
shoes.cpp:27:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |     for(int i=0;i!=x.size();++i){
      |                 ~^~~~~~~~~~
shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:37:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |     for(int i=0;i!=s.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...