Advertisement
Guest User

Untitled

a guest
May 25th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.62 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long               ll;
  5. typedef long double             ld;
  6.  
  7.  
  8. #define racecar          ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  9. #define si(a)            scanf("%d", &a)
  10. #define si2(a,b)         scanf("%d %d", &a,&b)
  11. #define sll(a)           scanf("%I64d",&a)
  12. #define sll2(a,b)        scanf("%I64d %I64d",&a,&b)
  13. #define pb               push_back
  14. #define pi(a)            printf("%d",int(a))
  15. #define pll(a)           printf("%I64d",ll(a))
  16. #define all(x)       (x).begin(),(x).end()
  17. #define rall(x)      (x).rbegin(),(x).rend()
  18. #define ps               printf(" ")
  19. #define nln              printf("\n")
  20. #define ff               first
  21. #define ss               second
  22. #define vi               vector<int>
  23. #define vll              vector<ll>
  24. #define vstr             vector<string>
  25. #define vc               vector<char>
  26. #define pii              pair<int,int>
  27. #define PLL              pair<ll,ll>
  28. #define PI               acos(-1)
  29. #define sq(x)            x*x
  30. #define forr(i,a,b)      for(ll i=ll(a);i<ll(b);i++)
  31. #define forn(i,a,b)      for(ll i=ll(a);i>ll(b);i--)
  32. #define max3(a,b,c)      max(a,max(b,c))
  33. #define max4(a,b,c,d)    max(max3(a,b,c),d)
  34. #define min3(a,b,c)      min(a,min(b,c))
  35. #define mod              1000000007
  36. #define pinf             9223372036854775807
  37. #define minf             -9223372036854775807
  38.  
  39. ll power(ll b,ll n)
  40. {
  41.  
  42.     if(n==0) return 1;
  43.     else if(n%2) return b*power(b,n/2)*power(b,n/2);
  44.     else return power(b,n/2)*power(b,n/2);
  45. }
  46.  
  47. ld root(ll n,ll r)
  48. {
  49.     ld dif=0.0001;
  50.     ld guess=n/2.0;
  51.     while(abs(pow(guess,r)-n)>=dif)
  52.     {
  53.         ld temp=pow(guess,r)-n;
  54.         ld tmp=r*pow(guess,r-1);
  55.         guess-=temp/tmp;
  56.     }
  57.     return guess;
  58. }
  59.  
  60.  
  61. void fileio()
  62. {
  63.     #ifndef ONLINE_JUDGE
  64.     freopen("input.txt","r",stdin);
  65.     freopen("output.txt","w",stdout);
  66.     #endif
  67. }
  68.  
  69. int solve()
  70. {
  71.     ll n;
  72.     ll m=998244353;
  73.     sll(n);
  74.     vll a,b;
  75.     forr(i,0,n)
  76.     {
  77.         ll x;
  78.         sll(x);
  79.         ll temp=(i+1)*(n-i);
  80.         temp%=m;
  81.         x*=temp;
  82.         x%=m;
  83.         a.pb(x);
  84.     }
  85.     forr(i,0,n)
  86.     {
  87.         ll x;
  88.         sll(x);
  89.         b.pb(x);
  90.     }
  91.     vll ans;
  92.     sort(all(a));
  93.     sort(rall(b));
  94.     forr(i,0,n)
  95.     {
  96.         ll temp=a[i]*b[i];
  97.         temp%=m;
  98.         ans.pb(temp);
  99.     }
  100.     ll tot=0;
  101.     forr(i,0,n)
  102.     {
  103.         tot+=ans[i];
  104.         tot%=m;
  105.     }
  106.     pll(tot);
  107. }
  108.  
  109. int main()
  110. {
  111.     racecar;    
  112.     fileio();
  113.     solve();
  114. }
  115.  
  116.  
  117.  
  118. ///    Before submission=>
  119. ///    ***check for integer overflow,array bounds
  120. ///    ***check for n=1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement