Submission #72415339


Source Code Expand

Copy
#include <stdio.h>
#define COORD_MAX 5123
int n;
int x[3123], y[3123];
char exists[COORD_MAX][COORD_MAX];
int is_exist(int y, int x) {
if (y < 0 || COORD_MAX <= y || x < 0 || COORD_MAX <= x) return 0;
return exists[y][x];
}
int main(void) {
int i, j;
int ans = 0;
if (scanf("%d", &n) != 1) return 1;
for (i = 0; i < n; i++) {
if (scanf("%d%d", &x[i], &y[i]) != 2) return 1;
exists[y[i]][x[i]] = 1;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>

#define COORD_MAX 5123

int n;
int x[3123], y[3123];

char exists[COORD_MAX][COORD_MAX];

int is_exist(int y, int x) {
	if (y < 0 || COORD_MAX <= y || x < 0 || COORD_MAX <= x) return 0;
	return exists[y][x];
}

int main(void) {
	int i, j;
	int ans = 0;
	if (scanf("%d", &n) != 1) return 1;
	for (i = 0; i < n; i++) {
		if (scanf("%d%d", &x[i], &y[i]) != 2) return 1;
		exists[y[i]][x[i]] = 1;
	}
	for (i = 0; i < n; i++) {
		for (j = i + 1; j < n; j++) {
			int dx = x[j] - x[i], dy = y[j] - y[i];
			int x1 = x[i] + dy, y1 = y[i] - dx;
			int x2 = x[j] + dy, y2 = y[j] - dx;
			if (is_exist(y1, x1) && is_exist(y2, x2)) {
				int score = dx * dx + dy * dy;
				if (score > ans) ans = score;
			}
		}
	}
	printf("%d\n", ans);
	return 0;
}

Submission Info

Submission Time
Task C - 最古の遺跡
User mikecat
Language C23 (GCC 14.2.0)
Score 20
Code Size 795 Byte
Status AC
Exec Time 28 ms
Memory 11252 KiB

Judge Result

Set Name set01 set02 set03 set04 set05 set06 set07 set08 set09 set10
Score / Max Score 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2 2 / 2
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
set06 data6
set07 data7
set08 data8
set09 data9
set10 data10
Case Name Status Exec Time Memory
data1 AC 1 ms 1992 KiB
data10 AC 28 ms 11252 KiB
data2 AC 2 ms 2160 KiB
data3 AC 2 ms 2040 KiB
data4 AC 5 ms 3312 KiB
data5 AC 5 ms 3628 KiB
data6 AC 5 ms 3472 KiB
data7 AC 17 ms 5976 KiB
data8 AC 25 ms 8016 KiB
data9 AC 27 ms 10448 KiB


2026-01-12 (Mon)
06:51:16 +09:00