Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Author: 曹北健(37509)
- Result: AC Submission_id: 5311061
- Created at: Sat Apr 01 2023 19:07:24 GMT+0800 (China Standard Time)
- Problem: 6794 Time: 835 Memory: 7100
- */
- /*
- Author: 刘书琦(63370)
- Result: PE Submission_id: 5311018
- Created at: Sat Apr 01 2023 19:03:12 GMT+0800 (China Standard Time)
- Problem: 6794 Time: 494 Memory: 7176
- */
- #include <stdio.h>
- long long a[100000],A[100000],b[100000],B[100000],c[200000],C[200000];
- int main()
- {
- int t,n,m,i,j;
- scanf("%d",&t);
- while(t--){
- scanf("%d",&n);
- for(i=0;i<n;i++){
- scanf("%lld",&a[i]);
- }
- for(i=0;i<n;i++){
- scanf("%lld",&A[i]);
- }
- scanf("%d",&m);
- for(i=0;i<m;i++){
- scanf("%lld",&b[i]);
- }
- for(i=0;i<m;i++){
- scanf("%lld",&B[i]);
- }
- int cnt=0;
- for(i=0,j=0;i<n&&j<m;){
- if(A[i]<B[j]){
- C[cnt]=A[i];
- c[cnt]=a[i];
- cnt++;
- i++;
- while(A[i-1]==A[i]){
- c[cnt]+=a[i];
- i++;
- }
- }else if(A[i]==B[j]){
- C[cnt]=A[i];
- c[cnt]=a[i]+b[j];
- cnt++;
- i++;
- j++;
- while(A[i-1]==A[i]){
- c[cnt]+=a[i];
- i++;
- }
- while(B[j-1]==B[j]){
- c[cnt]+=b[j];
- j++;
- }
- }else if(A[i]>B[j]){
- C[cnt]=B[j];
- c[cnt]=b[j];
- cnt++;
- j++;
- while(B[j-1]==B[j]){
- c[cnt]+=b[j];
- j++;
- }
- }
- if(0==c[cnt-1]) cnt--;
- }
- while(i<n){
- C[cnt]=A[i];
- c[cnt]=a[i];
- cnt++;
- i++;
- while(A[i-1]==A[i]){
- c[cnt]+=a[i];
- i++;
- }
- if(0==c[cnt-1]){
- cnt--;
- }
- }
- while(j<n){
- C[cnt]=B[j];
- c[cnt]=b[j];
- cnt++;
- j++;
- while(B[j-1]==B[j]){
- c[cnt]+=b[j];
- j++;
- }
- if(0==c[cnt-1]){
- cnt--;
- }
- }
- printf("%d \n",cnt);
- for(i=0;i<cnt;i++){
- printf("%lld ",c[i]);
- }
- printf("\n");
- for(i=0;i<cnt;i++){
- printf("%lld ",C[i]);
- //if(i<cnt-1) printf(" ");
- }
- printf("\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement