Submission #331222

#TimeUsernameProblemLanguageResultExecution timeMemory
331222pggpArranging Shoes (IOI19_shoes)C++14
0 / 100
1 ms364 KiB
#include <bits/stdc++.h> using namespace std; int sgn(int x){ if(x > 0 ) return 1; return - 1; } long long count_swaps(vector < int > S){ // Najpierw przenumerowanie set < int > sizes_set; vector < int > sizes_original; map < int, int > map_sizes; for (int i : S) { if(sizes_set.find(abs(i)) == sizes_set.end()){ sizes_original.push_back(abs(i)); } sizes_set.insert(abs(i)); } sort(sizes_original.begin(), sizes_original.end()); for (int i = 0; i < sizes_original.size(); ++i) { map_sizes[sizes_original[i]] = i + 1; } for (int i = 0; i < S.size(); ++i) { S[i] = sgn(S[i]) * map_sizes[abs(S[i])]; } // Na początku zamiany wewnętrzne long long interial = 0; stack < int > size_stack[S.size()/2 + 1]; for (int i = 0; i < S.size(); ++i) { if(size_stack[abs(S[i])].empty()){ size_stack[abs(S[i])].push(S[i]); } else{ if(S[i] < 0){ if(size_stack[abs(S[i])].top() > 0){ interial += size_stack[abs(S[i])].size(); size_stack[abs(S[i])].pop(); } else{ size_stack[abs(S[i])].push(S[i]); } } else{ if(size_stack[S[i]].top() < 0){ interial += size_stack[S[i]].size(); size_stack[S[i]].pop(); } else{ size_stack[S[i]].push(S[i]); } } } } long long exterial = 0; return interial + exterial; }

Compilation message (stderr)

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