-
Профи
(660)
1 месяц назад
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
// Создаем матрицу 1000x1000, инициализированную нулями
vector<vector<int>> matrix(1000, vector<int>(1000, 0));
for (int i = 0; i < n; ++i) {
int row, col, size;
cin >> row >> col >> size;
// Корректируем координаты для нумерации с 0
row--;
col--;
// Учитываем половину размера частицы для определения области влияния
int halfSize = (size - 1) / 2;
// Увеличиваем счетчик для каждой точки в области влияния частицы
for (int dr = -halfSize; dr <= halfSize; ++dr) {
for (int dc = -halfSize; dc <= halfSize; ++dc) {
matrix[row + dr][col + dc]++;
}
}
}
int maxCount = 0;
int maxRow = 0;
int maxCol = 0;
// Находим точку с максимальным количеством частиц
for (int row = 0; row < 1000; ++row) {
for (int col = 0; col < 1000; ++col) {
if (matrix[row][col] > maxCount || (matrix[row][col] == maxCount && row < maxRow)) {
maxCount = matrix[row][col];
maxRow = row;
maxCol = col;
}
}
}
// Возвращаем к нумерации с 1
maxRow++;
maxCol++;
cout << maxRow + maxCol << " " << maxCount << endl;
return 0;
}
Вам необходимо по полученным результатам эксперимента определить точку матрицы, в которой было зарегистрировано максимальное количество частиц.
Для упрощения, форму частицы считать квадратом, сторона которого всегда имеет нечетный размер.
Входные данные:
В первой строке входного файла находится число N - количество частиц, зарегистрированных детектором.
Каждая из следующих N строк содержит по три числа: номер ряда, позиция в данном ряду - натуральные числа, не превышающие 103, размеры частицы (в точках матрицы) - нечетное натуральное число, не превышающее 50. Гарантируется, что все частицы целиком попадают во внутреннюю часть матрицы.
Выходные данные:
Два числа: сумма номера ряда и позиции в этом ряду точки матрицы, в которой было зарегистрировано максимальное количество частиц и количество частиц, зарегистрированных в этой точек. Если подходящих точек найдено несколько, необходимо указать точку, имеющую минимальный номер ряда и максимальну позицию в данном ряду.
Пример входного файла:
5
2 3 3
3 6 5
8 4 1
7 5 5
6 8 3
Ответом для данного примера будет пара чисел 12 3