Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int main()
- {
- long int n,m;
- cin>>n;
- while(n!=0)
- {
- long int a[n],suma[n],sum=0;
- sum=0;
- for(int i=0;i<n;i++){
- cin>>a[i];
- sum+=a[i];
- suma[i]=sum;
- }
- cin>>m;
- long int b[m],sumb[m];
- sum=0;
- for(int i=0;i<m;i++){
- cin>>b[i];
- sum+=b[i];
- sumb[i]=sum;
- }
- long long ans=0,ab=0,ac=0,y=0,x;
- for(int i=0;i<n;i++)
- {
- int low=0,high=n,mid,x=-1,val=a[i];
- while(low<high)
- {
- mid=(low+high)/2;
- if(b[mid]==val)
- {
- x=mid;
- break;
- }
- else if(b[mid]>val)
- {
- high=mid-1;
- }
- else
- low=mid+1;
- }
- ;
- if(x>=0)
- {
- if(y>=1)
- {
- ans+=max(suma[i]-suma[ab],sumb[x]-sumb[ac]);
- }
- else
- {
- ans+=max(suma[i],sumb[x]);
- }
- y++;
- ab=i;
- ac=x;
- }
- //cout<<ans<<endl;
- //cout<<ans<<endl;
- }
- if((ab<n||ac<m)&&y)
- {
- ans+=max(suma[n-1]-suma[ab],sumb[m-1]-sumb[ac]);
- }
- else
- {
- ans+=max(suma[n-1],sumb[m-1]);
- }
- cout<<ans<<endl;
- cin>>n;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment