fork(1) download
  1. #include <bits/stdc++.h>
  2. #define lli long long int
  3. using namespace std;
  4.  
  5. int main() {
  6. lli T;
  7. cin>>T;
  8. while(T--){
  9. lli N, a[100000], b[100000], c=0, mi;
  10. map<lli, lli> m;
  11. cin>>N;
  12. for(lli i=0; i<N; i++)
  13. cin>>a[i];
  14. for(lli i=0; i<N; i++){
  15. cin>>b[i];
  16. if(!i)
  17. mi = b[i];
  18. else
  19. mi = min(mi, b[i]);
  20. }
  21. for(lli i=0; i<N; i++)
  22. c+=b[i]-a[i]%b[i];
  23. for(lli i=0; i<N; i++){
  24. if(a[i]%b[i]<mi){
  25. if(m.find(mi-(a[i]%b[i]))!=m.end())
  26. m.insert(pair<lli, lli>(mi-(a[i]%b[i]), b[i]));
  27. else
  28. m.find(mi-(a[i]%b[i]))->second+=b[i];
  29. }
  30. }
  31. lli mini = c;
  32. cout<<c<<endl;
  33. for(map<lli, lli>::iterator i=m.begin(); i!=m.end(); i++){
  34. mini = min(mini, c+i->first*N-i->second);
  35. cout<<i->first<<" "<<i->second<<" "<<c+i->first*N-i->second<<" "<<endl;
  36. }
  37. cout<<mini<<endl;
  38. }
  39. }
Success #stdin #stdout 0s 16680KB
stdin
1
3
4
2
2
5
3
4
stdout
4
4