이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define pll pair<ll,ll>
#define x first
#define y second
ll n;
const ll len = 2500;
ll board[len+3][len+3],dp[len+3][len+3];
pll point[252525];
ll score[252525];
ll X_bgY[len+3],Y_smX[len+3];
ll box(ll sx,ll ex,ll sy,ll ey) {
	return board[ex][ey]-board[sx-1][ey]-board[ex][sy-1]+board[sx-1][sy-1];
}
ll reach(ll x,ll y) {
	return box(1,x-1,1,y-1)+box(x+1,len,y+1,len);
}
void init(ll cnt) {
	for(ll i = 0 ; i <= len+1 ; i++) X_bgY[i] = 0,Y_smX[i] = len+1;
	for(ll i = 0 ; i <= len+1 ; i++) for(ll q = 0 ; q <= len+1 ; q++) dp[i][q] = board[i][q] = 0;
	for(int i = 1 ; i <= n ; i++) {
		board[point[i].x][point[i].y] = 1;
		X_bgY[point[i].x] = max(X_bgY[point[i].x],point[i].y);
		Y_smX[point[i].y] = min(Y_smX[point[i].y],point[i].x);
	}
	for(int i = 1 ; i <= len ; i++)
		for(int q = 1 ; q <= len ; q++) 
			board[i][q] += board[i-1][q]+board[i][q-1]-board[i-1][q-1];
	if(cnt == 1) {
		for(int i = 1 ; i <= n ; i++)
			score[i] = reach(point[i].x,point[i].y);
	}
	for(int i = 1 ; i <= len ; i++) Y_smX[i] = min(Y_smX[i],Y_smX[i-1]);
	for(int i = len ; i >= 1 ; i--) X_bgY[i] = max(X_bgY[i],X_bgY[i+1]);
}
void solve(ll cnt) {
	init(cnt);
	for(ll x = 1 ; x <= len ; x++) {
		for(ll y = len ; y >= 1 ; y--) {
			ll nwX = min(x,Y_smX[y-1]);
			ll nwY = max(y,X_bgY[x+1]);
			dp[x][y] = box(1,x,y,len)-box(x,x,y,y)+dp[nwX][nwY];
		}
	}
	
	for(int i = 1 ; i <= n ; i++) {
		score[i] += dp[point[i].x][point[i].y]+box(1,point[i].x,point[i].y,len)-1;
	}
}
main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>n;
	for(int i = 1 ; i <= n ; i++) {
		cin>>point[i].x>>point[i].y;
	}
	solve(1);
	for(int i = 1 ; i <= n ; i++) {
		swap(point[i].x,point[i].y);
	}
	solve(2);
	for(int i = 1 ; i <= n ; i++) {
		cout<<score[i]<<"\n";
	}
}
컴파일 시 표준 에러 (stderr) 메시지
adriatic.cpp:64:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   64 | main() {
      | ^~~~| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |