Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Author: 曹北健(37509)
- Result: AC Submission_id: 5295661
- Created at: Thu Mar 30 2023 14:10:23 GMT+0800 (China Standard Time)
- Problem: 6794 Time: 834 Memory: 7104
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #include <ctype.h>
- #include <time.h>
- #pragma warning(disable:4996 6031)
- long long A1[200010] = { 0 };
- long long E1[200010] = { 0 };
- long long A2[200010] = { 0 };
- long long E2[200010] = { 0 };
- long long A[200010] = { 0 };
- long long E[200010] = { 0 };
- int main(){
- #ifdef _DEBUG
- freopen("../../input.txt", "r", stdin);
- //freopen("output.txt", "w", stdout);
- #endif // _DEBUG
- int t, n, m, p, q, i, j;
- scanf("%d", &t);
- while(t--){
- scanf("%d", &n);
- for(i = n; i >= 1; i--){
- scanf("%lld", A1 + i);
- }
- for(i = n; i >= 1; i--){
- scanf("%lld", E1 + i);
- }
- scanf("%d", &m);
- for(i = m; i >= 1; i--){
- scanf("%lld", A2 + i);
- }
- for(i = m; i >= 1; i--){
- scanf("%lld", E2 + i);
- }
- p = 1; q = 1; j = 1;
- while(p <= n || q <= m){
- //指数大的先输出 保证有东西
- if((p <= n && q <= m && E1[p] > E2[q]) || q > m){
- //第一个的指数更大
- //第二个处理完了
- //printf("%lld %lld ", A1[p], E1[p]); p++;
- A[j] = A1[p]; E[j] = E1[p];
- p++; j++;
- }
- else if((p <= n && q <= m && E1[p] < E2[q]) || p > n){
- //第二个的指数更大
- //第一个处理完了
- //printf("%lld %lld ", A2[q], E2[q]); q++;
- A[j] = A2[q]; E[j] = E2[q];
- q++; j++;
- }
- else{
- //两个都没处理完
- if(A1[p] + A2[q]){
- //printf("%lld %lld ", A1[p] + A2[q], E2[q]);
- A[j] = A1[p] + A2[q];
- E[j] = E2[q];
- j++;
- }
- p++; q++;
- }
- }
- printf("%d\n", j - 1);
- for(i = j - 1; i >= 1; i--)
- {
- printf("%lld ", A[i]);
- }
- putchar('\n');
- for(i = j - 1; i >= 1; i--){
- printf("%lld ", E[i]);
- }
- putchar('\n');
- }
- #ifdef _DEBUG
- freopen("CON", "r", stdin);
- //freopen("CON", "w", stdout);
- system("pause");
- #endif // _DEBUG
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement