提交记录 9817


用户 题目 状态 得分 用时 内存 语言 代码长度
evenbao noi19c. 【NOI2019】序列 Wrong Answer 0 251.138 ms 29368 KB C++ 3.66 KB
提交时间 评测时间
2019-07-16 17:11:25 2020-08-01 01:53:56
#include<bits/stdc++.h>
using namespace std;

#ifndef LOCAL
		#define eprintf(...) fprintf(stderr, _VA_ARGS_)
#else
		#define eprintf(...) 42
#endif

typedef long long ll;
typedef pair<int , int> pii;
typedef pair<ll , int> pli;
typedef pair<ll , ll> pll;
typedef long double ld;
typedef vector< int > vi;
typedef unsigned long long ull;
#define int ll
#define mp make_pair
#define fi first
#define se second
const int N = 2e5 + 10;
const int INF = 1e18;

struct info {	
	  int value , home;
} a[N] , b[N] , c[N];

int n , L , K;
int ta[N] , tb[N] , Fa[N] , Fb[N];

struct mheap1 {
		priority_queue< pii > Heap , Del;
		inline void _push(pii x) {
				Heap.push(x);
		}
		inline bool _empty() {
				while (!Del.empty() && Heap.top() == Del.top()) {
						Heap.pop();
						Del.pop();
				}
				return Heap.empty();
		}
		inline void _del(pii x) {
				Del.push(x);
		}
		inline pii _top() {
				while (!Del.empty() && Heap.top() == Del.top()) {
						Heap.pop();
						Del.pop();
				}
				return Heap.top();
		} 
} A , B;

struct mheap2 {
		priority_queue< pii , vector< pii > , greater< pii > > Heap , Del;
		inline void _push(pii x) {
				Heap.push(x);
		}
		inline bool _empty() {
				while (!Del.empty() && Heap.top() == Del.top()) {
						Heap.pop();
						Del.pop();
				}
				return Heap.empty();
		}
		inline void _del(pii x) {
				Del.push(x);
		}
		inline pii _top() {
				while (!Del.empty() && Heap.top() == Del.top()) {
						Heap.pop();
						Del.pop();
				}
				return Heap.top();
		} 
} C , D;

template <typename T> inline void chkmax(T &x,T y) { x = max(x,y); }
template <typename T> inline void chkmin(T &x,T y) { x = min(x,y); }
template <typename T> inline void read(T &x) {
    T f = 1; x = 0;
    char c = getchar();
    for (; !isdigit(c); c = getchar()) if (c == '-') f = -f;
    for (; isdigit(c); c = getchar()) x = (x << 3) + (x << 1) + c - '0';
    x *= f;
}
inline bool cmp(info a , info b) {
		return a.value > b.value;
}

signed main() {
		

		
		int T;
		read(T);
		while (T--) {
				read(n); read(K); read(L);
				for (int i = 1; i <= n; ++i) {
						read(a[i].value);
						a[i].home = i;
						ta[i] = a[i].value;
				}
				for (int i = 1; i <= n; ++i) {
						read(b[i].value);
						b[i].home = i;
						tb[i] = b[i].value;
				}
				for (int i = 1; i <= n; ++i)
						Fa[i] = Fb[i] = 0;
				sort(a + 1 , a + n + 1 , cmp);
				sort(b + 1 , b + n + 1 , cmp);
				ll ans = 0;
				for (int i = 1; i <= K; ++i) {
						ans += a[i].value + b[i].value;
						Fa[a[i].home] = Fb[b[i].home] = 1;
				}
				int cnt = 0;
				for (int i = 1; i <= K; ++i) 
						if (Fb[a[i].home]) ++cnt;
				if (cnt >= L) {
						printf("%lld\n" , ans);
						continue;
				}
				for (int i = 1; i <= K; ++i) {
						if (Fa[a[i].home] && Fb[a[i].home]) continue; 
						if (Fa[a[i].home] && !Fb[a[i].home]) {
								A._push(mp(tb[a[i].home] , a[i].home));
								C._push(mp(a[i].value , a[i].home));
						} 
						if (Fb[b[i].home] && !Fa[b[i].home]) {
								B._push(mp(ta[b[i].home] , b[i].home));
								D._push(mp(b[i].value , b[i].home));
						}
				}
				for (int i = 1; i <= L - cnt; ++i) {
						int da , db;
						if (A._empty() == 0 && D._empty() == 0) da = A._top().fi - D._top().fi;
						else da = -INF;
						if (B._empty() == 0 && C._empty() == 0) db = B._top().fi - C._top().fi;
						else db = -INF;
						if (da > db) {
								ans += da;
								pii x = A._top() , y = D._top();
								A._del(x); D._del(y); 
								C._del(mp(ta[x.se] , x.se)); B._del(mp(ta[y.se] , y.se));
						} else {
								ans += db;
								pii x = B._top() , y = C._top();
								B._del(x); C._del(y);
								D._del(mp(tb[x.se] , x.se)); A._del(mp(tb[y.se] , y.se));
						}
				}
				printf("%lld\n" , ans);
		}
		
		return 0;
	
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #151.31 us68 KBWrong AnswerScore: 0

Testcase #250.65 us64 KBRuntime ErrorScore: 0

Testcase #356.43 us68 KBWrong AnswerScore: 0

Testcase #440.73 us60 KBRuntime ErrorScore: 0

Testcase #566.64 us68 KBWrong AnswerScore: 0

Testcase #677.3 us68 KBWrong AnswerScore: 0

Testcase #783.82 us72 KBWrong AnswerScore: 0

Testcase #864.72 us68 KBRuntime ErrorScore: 0

Testcase #9263.36 us96 KBWrong AnswerScore: 0

Testcase #10251.24 us92 KBWrong AnswerScore: 0

Testcase #111.007 ms208 KBWrong AnswerScore: 0

Testcase #122.851 ms476 KBWrong AnswerScore: 0

Testcase #133.438 ms516 KBWrong AnswerScore: 0

Testcase #143.586 ms544 KBWrong AnswerScore: 0

Testcase #153.575 ms544 KBWrong AnswerScore: 0

Testcase #163.608 ms556 KBWrong AnswerScore: 0

Testcase #178.154 ms952 KBRuntime ErrorScore: 0

Testcase #1833.025 ms5 MB + 656 KBWrong AnswerScore: 0

Testcase #1972.359 ms18 MB + 404 KBWrong AnswerScore: 0

Testcase #2071.464 ms18 MB + 840 KBWrong AnswerScore: 0

Testcase #2170.369 ms16 MB + 280 KBWrong AnswerScore: 0

Testcase #22146.289 ms20 MB + 864 KBWrong AnswerScore: 0

Testcase #23160.422 ms21 MB + 984 KBWrong AnswerScore: 0

Testcase #24251.138 ms28 MB + 496 KBWrong AnswerScore: 0

Testcase #25229.261 ms28 MB + 696 KBWrong AnswerScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-30 16:44:16 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠