记录编号 609450 评测结果 AAAAAAAAAA
题目名称 4069.又是决斗 最终得分 100
用户昵称 54lku 是否通过 通过
代码语言 C++ 运行时间 1.576 s
提交时间 2025-11-11 09:45:48 内存使用 12.41 MiB
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
#define ft first
#define sd second
#define mk make_pair
using namespace std;

namespace Fread {
const int SIZE = 1 << 21;
char buf[SIZE], *S, *T;
inline char getchar() {
	if (S == T) {
		T = (S = buf) + fread(buf, 1, SIZE, stdin);
		if (S == T) return '\n';
	}
	return *S++;
}
} // namespace Fread
namespace Fwrite {
const int SIZE = 1 << 21;
char buf[SIZE], *S = buf, *T = buf + SIZE;
inline void flush() {
	fwrite(buf, 1, S - buf, stdout);
	S = buf;
}
inline void putchar(char c) {
	*S++ = c;
	if (S == T) flush();
}
struct NTR {
	~ NTR() { flush(); }
} ztr;
} // namespace Fwrite
#ifdef ONLINE_JUDGE
#define getchar Fread :: getchar
#define putchar Fwrite :: putchar
#endif
namespace Fastio {
struct Reader {
	template<typename T>
	Reader& operator >> (T& x) {
		char c = getchar();
		T f = 1;
		while (c < '0' || c > '9') {
			if (c == '-') f = -1;
			c = getchar();
		}
		x = 0;
		while (c >= '0' && c <= '9') {
			x = x * 10 + (c - '0');
			c = getchar();
		}
		x *= f;
		return *this;
	}
	Reader& operator >> (char& c) {
		c = getchar();
		while (c == ' ' || c == '\n') c = getchar();
		return *this;
	}
	Reader& operator >> (char* str) {
		int len = 0;
		char c = getchar();
		while (c == ' ' || c == '\n') c = getchar();
		while (c != ' ' && c != '\n' && c != '\r') { // \r\n in windows
			str[len++] = c;
			c = getchar();
		}
		str[len] = '\0';
		return *this;
	}
	Reader(){}
} cin;
const char endl = '\n';
struct Writer {
	template<typename T>
	Writer& operator << (T x) {
		if (x == 0) { putchar('0'); return *this; }
		if (x < 0) { putchar('-'); x = -x; }
		static int sta[45];
		int top = 0;
		while (x) { sta[++top] = x % 10; x /= 10; }
		while (top) { putchar(sta[top] + '0'); --top; }
		return *this;
	}
	Writer& operator << (char c) {
		putchar(c);
		return *this;
	}
	Writer& operator << (char* str) {
		int cur = 0;
		while (str[cur]) putchar(str[cur++]);
		return *this;
	}
	Writer& operator << (const char* str) {
		int cur = 0;
		while (str[cur]) putchar(str[cur++]);
		return *this;
	}
	Writer(){}
} cout;
} // namespace Fastio
#define cin Fastio :: cin
#define cout Fastio :: cout
#define endl Fastio :: endl

const int N = 7e6 + 5;
int n,a[N];
map<int,int> mp;
priority_queue<int> q;
signed main(){
	
	freopen("duela.in", "r", stdin);
	freopen("duela.out", "w", stdout);
	
	cin>>n;
    for(int i = 1; i <= n; i ++){
        cin >> a[i];
        mp[a[i]]+=1;
    }
    for(auto t:mp){
        q.push(t.sd);
    }
    int ans = 0;
    while((int)q.size()>=2){
        int x=q.top();
        q.pop();
        int y=q.top();
        q.pop();
        ans+=2*min(x, y);
        if(x!=y){
            q.push(abs(x-y));
        }
    }
    cout<<n-ans<<'\n';
    return 0;
}