Загрузка данных


#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, m, k;
    cin >> n >> m >> k;

    // для каждой строки календаря — отрезок заполненных столбцов [lo, hi]
    vector<int> lo, hi;
    for (int d = 0; d < n; d++) {
        int r = (k - 1 + d) / m;
        int c = (k - 1 + d) % m;
        if (r == (int)lo.size()) {       // началась новая строка
            lo.push_back(c);
            hi.push_back(c);
        } else {
            hi[r] = c;                   // строка продолжается вправо
        }
    }

    int rows = lo.size();
    int best = 0;
    for (int top = 0; top < rows; top++) {
        int L = lo[top], H = hi[top];
        for (int bot = top; bot < rows; bot++) {
            L = max(L, lo[bot]);         // общая часть всех строк от top до bot
            H = min(H, hi[bot]);
            if (L > H) break;
            best = max(best, (bot - top + 1) * (H - L + 1));
        }
    }

    cout << best << "\n";
    return 0;
}