Submission #424921

#TimeUsernameProblemLanguageResultExecution timeMemory
424921ApiramArranging Shoes (IOI19_shoes)C++14
10 / 100
1077 ms70068 KiB
#include "shoes.h" #include<bits/stdc++.h> using namespace std; long long count_swaps(std::vector<int> s) { int n = s.size()/2; vector<deque<int>>adj(n+1); vector<int>neg; int64_t score=0; for (int i =0;i<s.size();++i){ if (s[i]<0)neg.push_back(i); else{ adj[s[i]].push_back(i); } } for (int i =0,j=0;i<neg.size();++i,j+=2){ int64_t temp = neg[i]-j; for (int k =0;k<=n;++k){ for (int l =0;l<adj[k].size();++l){ if (adj[k][l]<neg[i]){ adj[k][l]++; } } } int64_t temp2 = adj[abs(s[neg[i]])][0]; for (int k =0;k<=n;++k){ for (int l =0;l<adj[k].size();++l){ if (adj[k][l]<temp2){ adj[k][l]++; } } } adj[abs(s[neg[i]])].pop_front(); for (int k =i+1;k<neg.size();++k){ if (neg[k]<temp2)neg[k]++; } temp2 = temp2 - j - 1; score+=temp2+temp; } return score; }

Compilation message (stderr)

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:10:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |  for (int i =0;i<s.size();++i){
      |                ~^~~~~~~~~
shoes.cpp:17:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |  for (int i =0,j=0;i<neg.size();++i,j+=2){
      |                    ~^~~~~~~~~~~
shoes.cpp:20:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |   for (int l =0;l<adj[k].size();++l){
      |                 ~^~~~~~~~~~~~~~
shoes.cpp:29:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |   for (int l =0;l<adj[k].size();++l){
      |                 ~^~~~~~~~~~~~~~
shoes.cpp:36:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |  for (int k =i+1;k<neg.size();++k){
      |                  ~^~~~~~~~~~~
#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...