#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000001 mint ans = 0; int N; void go(vector x){ sort(x.begin(),x.end()); rep(i,N){ mint t = x[i]; t *= x[i]; t *= N-1; ans += t; } mint sum = 0; rep(i,N){ ans += sum * x[i]; sum -= x[i] * 2; } } mint op(mint a,mint b){ return a+b; } mint e(){ return 0; } int main(){ cin>>N; vector x(N),y(N); vector t; rep(i,N){ scanf("%d %d",&x[i],&y[i]); t.push_back(y[i]); } sort(t.begin(),t.end()); t.erase(unique(t.begin(),t.end()),t.end()); go(x); go(y); vector> P(N); rep(i,N)P[i] = make_pair(x[i],y[i]); sort(P.begin(),P.end()); segtree segb(t.size()),segd(t.size()),segbd(t.size()),segcnt(t.size()); rep(i,N){ x[i] = P[i].first; y[i] = P[i].second; } rep(i,N){ //cout<