제출 #1047352

#제출 시각아이디문제언어결과실행 시간메모리
1047352vjudge1Arranging Shoes (IOI19_shoes)C++17
컴파일 에러
0 ms0 KiB
#include<bits/stdc++.h>
#include<shoes.h>
using namespace std;
const int mxN = 1e5 + 7;
int tree[mxN];
int n;
void upd(int l,int r)
{
	l++;
	for( ;n > l;l += l & -l) tree[l]++;
	for( ;n > r;r += r & -r) tree[r]--;
}
int que(int pos)
{
	pos--;
	int res = 0;
	for( ;pos > 0;pos -= pos & -pos) res += tree[pos];
	return res;
}
int count_swaps(vector<int> a)
{
	n = a.size();
	int mark[n];
	memset(mark,0,sizeof(mark));
	vector<int> sz[2 * n];
	int ans = 0;
	for(int i = 0;n > i;i++)
	{
		sz[n + a[i]].push_back(i);
	}
	for(int i = 0;n > i;i++)
	{
		if(mark[i]) continue;
		int kayd = -a[i] + n;
		auto l = upper_bound(sz[kayd].begin(), sz[kayd].end(), i);
		if(l == sz[kayd].end()) continue;
		ans += que(i) + (*l - i);
		if(a[*l] > 0) ans--;
		upd(i,*l);
		mark[*l]++;
	}
	return ans;
}
int main()
{
	vector<int> a = {-2, 2, 2, -2, -2, 2};
	cout << count_swaps(a) << endl;
}

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

shoes.cpp:20:5: error: ambiguating new declaration of 'int count_swaps(std::vector<int>)'
   20 | int count_swaps(vector<int> a)
      |     ^~~~~~~~~~~
In file included from shoes.cpp:2:
shoes.h:7:11: note: old declaration 'long long int count_swaps(std::vector<int>)'
    7 | long long count_swaps(std::vector<int> S);
      |           ^~~~~~~~~~~