Guest User

Untitled

a guest
Jun 25th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. //author @ Ayush Aggarwal
  2. // Let's Do this shit.
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5. typedef long long ll;
  6. map <ll,ll> cnt;
  7. ll tot[1000010];
  8. int main()
  9. {  
  10.     ios::sync_with_stdio(false);
  11.     cin.tie(NULL);
  12.     ll t,n;
  13.     cin>>t;
  14.     while(t--)
  15.     {
  16.         cin>>n;
  17.         memset(tot,0,sizeof(tot));
  18.         ll sum=0,final=0,ans=0;
  19.         ll c[n],w[n];
  20.         for(ll i=0;i<n;i++)
  21.             cin>>c[i];
  22.         for(ll i=0;i<n;i++)
  23.         {
  24.             cin>>w[i];
  25.             sum +=w[i];
  26.             tot[i] = sum;
  27.         }
  28.         ll l=0,r=0;;
  29.         set <ll> s;
  30.         s.clear();
  31.         while(l<n)
  32.         {
  33.             r--;
  34.             while(r<n)
  35.             {
  36.                 r++;
  37.                 s.insert(c[r]);
  38.                 cnt[c[r]]++;
  39.                 if(s.size()==r+1-l)
  40.                     continue;
  41.                 else
  42.                     break;
  43.             }
  44.             //cout<<l<<" "<<(r-1)<<endl;
  45.             if(l>0)
  46.                 ans = tot[r-1]-tot[l-1];
  47.             else
  48.                 ans = tot[r-1];
  49.             //cout<<ans<<endl;
  50.             final = max(ans,final);
  51.             if(cnt[c[l]]==1)
  52.                 s.erase(c[l]);
  53.             cnt[c[l]]--;
  54.             l++;
  55.         }
  56.         cout<<final<<endl;
  57.     }
  58.     return 0;
  59. }
Add Comment
Please, Sign In to add comment