#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> usingnamespace std; #define MAXN 1000006 #define int long long #define P 323232323 intpower( int x , int a ){ int ans = 1 , cur = x % P; while( a ) { if( a & 1 ) ans *= cur , ans %= P; cur *= cur , cur %= P , a >>= 1; } return ans; } int n; int A[MAXN]; int J[MAXN] , S[MAXN] , Sk[MAXN]; signedmain(){ cin >> n; for( int i = 1 ; i <= n ; ++ i ) scanf("%lld",&A[i]); if( A[1] == 0 ) returnputs("0") ,0; J[0] = 1; for( int i = 1 ; i < MAXN ; ++ i ) J[i] = J[i - 1] * i % P; int p = ( 2 ) * power( n , P - 2 ) % P , a = A[1] - 1; S[0] = power( power( p * n % P , A[1] ) , P - 2 ); for( int k = 1 ; k < 500006 ; ++ k ) { int pp = J[a + k] * power( J[a] * J[k] % P * power( p * n % P , a + k + 1 ) % P , P - 2 ) % P; S[k] = ( S[k - 1] + pp ) % P , Sk[k] = ( Sk[k - 1] + k * pp % P ) % P; } int res = 0; for( int i = 2 ; i <= n ; ++ i ) res += ( Sk[A[i]] + ( 1 - S[A[i]] + P ) % P * A[i] % P ) % P , res %= P; cout << ( res + A[1] ) % P << endl; }