제출 #473085

#제출 시각아이디문제언어결과실행 시간메모리
473085blueArranging Shoes (IOI19_shoes)C++17
45 / 100
108 ms17312 KiB
#include "shoes.h" #include <vector> #include <iostream> #include <algorithm> using namespace std; const int maxN = 100'000; vector<int> A[1+maxN]; vector<int> B[1+maxN]; vector<int> actpos; long long count_swaps(vector<int> S) { int N = (int)S.size()/2; for(int i = 0; i < 2*N; i++) { if(S[i] < 0) A[ -S[i] ].push_back(i); else B[ S[i] ].push_back(i); } vector< pair<int, int> > X; for(int s = 1; s <= N; s++) { for(int i = 0; i < A[s].size(); i++) X.push_back(make_pair(A[s][i], B[s][i])); } sort(X.begin(), X.end()); actpos = vector<int>(2*N); int ct = -1; for(pair<int, int> x: X) { actpos[ x.first ] = ++ct; actpos[ x.second ] = ++ct; } long long res = 0; vector<int> a_sort(2*N); for(int i = 0; i < 2*N; i++) a_sort[i] = i; sort(a_sort.begin(), a_sort.end(), [] (int u, int v) { return actpos[u] > actpos[v]; }); vector<int> BIT(1+2*N, 0); for(int g: a_sort) { for(int i = g+1 - 1; i >= 1; i -= i&-i) res += BIT[i]; for(int i = g+1; i <= 2*N; i += i&-i) BIT[i]++; } return res; }

컴파일 시 표준 에러 (stderr) 메시지

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:25:26: 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 < A[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...