This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// Ignut
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int INF = 1e9 + 123;
void allocate_tickets(vector<vector<int>> s);
ll find_maximum(int k, vector<vector<int>> x) {
    int n = x.size(), m = x.front().size();
    vector<int> mn, mx;
    for (int i = 0; i < n; i ++) {
        mn.push_back(INF), mx.push_back(-INF);
        for (int j = 0; j < m; j ++) {
            mn.back() = min(mn.back(), x[i][j]);
            mx.back() = max(mx.back(), x[i][j]);
        }    
    }
    // for (int i = 0; i < n; i ++) {
    //     for (int j = 0; j < m; j ++) {
    //         cout << x[i][j] << ' ';
    //     }
    //     cout << '\n';
    // }
    // for (int i = 0; i < n; i ++) {
    //     cout << mn[i] << '_' << mx[i] << '\n';
    // }
    vector<int> vals;
    for (int i = 0; i < n; i ++) vals.push_back(mn[i]), vals.push_back(mx[i]);
    sort(vals.begin(), vals.end());
    ll res = -INF;
    int bestVal = -1;
    for (int val : vals) {
        vector<int> vec;
        for (int i = 0; i < n; i ++) {
            if (val >= mn[i]) vec.push_back(mn[i]);
            else vec.push_back(mx[i]);
        }
        sort(vec.begin(), vec.end());
        ll sum = 0;
        for (int i = 0; i < n; i ++)
            sum += abs(vec[i] - vec[n / 2]);
        // cerr << "try : " << sum << '\n';
        if (sum > res) {
            res = sum;
            bestVal = val;
        }
    }
    vector<vector<int>> s;
    for (int i = 0; i < n; i ++) {
        s.push_back({});
        s.back().assign(m, -1);
        int target = (bestVal >= mn[i] ? mn[i] : mx[i]);
        for (int j = 0; j < m; j ++) {
            if (x[i][j] == target) {
                s.back()[j] = 0;
                break;
            }
        }
    }
    allocate_tickets(s);
    return res;
}
| # | 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... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |