Submission #2216002


Source Code Expand

#include <algorithm>
#include <bitset>
#include <cassert>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <vector>

// c++11
#include <array>
#include <tuple>
#include <unordered_map>
#include <unordered_set>

#define mp make_pair
#define mt make_tuple
#define rep(i, n) for (int i = 0; i < (n); i++)

using namespace std;

using ll = long long;
using ull = unsigned long long;
using pii = pair<int, int>;

const int INF = 1 << 29;
const ll LL_INF = 1LL << 60;
const double EPS = 1e-9;
const ll MOD = 1000000007;

const int dx[] = {1, 0, -1, 0}, dy[] = {0, -1, 0, 1};
const int MAX_NM = 310;
int N, M;
int A[MAX_NM][MAX_NM];
int indices[MAX_NM];
int deg[MAX_NM];
int main()
{
    
    cin >> N >> M;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            cin >> A[i][j];
            A[i][j]--;
        }
        deg[A[i][0]]++;
    }

    set<int> tabooo;
    int result = N;
    while (tabooo.size() < M)
    {
        int max_deg = -1;
        int max_sports = -1;
        //add max sport to tabooo
        for (int i = 0; i < M; i++)
        {
            if (deg[i] > max_deg)
            {
                max_deg = deg[i];
                max_sports = i;
            }
        }
        if (max_sports == -1)
        {
            break;
        }
        // cerr << max_deg << " " << max_sports << " " << deg[max_sports] << endl;
        // assert(tabooo.count(max_sports) == 0);

        result = min(result, max_deg);
        tabooo.insert(max_sports);
        //update
        for (int i = 0; i < N; i++)
        {
            int idx = indices[i];
            int val = A[i][idx];
            while (tabooo.count(val) > 0)
            {
                deg[val]--;
                indices[i]++;
                int idx = indices[i];
                val = A[i][idx];
                deg[val]++;
            }
        }
    }
    cout << result << endl;
    return 0;
}

Submission Info

Submission Time
Task B - Sports Festival
User togatoga
Language C++14 (GCC 5.4.1)
Score 700
Code Size 2390 Byte
Status AC
Exec Time 646 ms
Memory 640 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 3
AC × 24
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt
Case Name Status Exec Time Memory
sample_01.txt AC 3 ms 256 KB
sample_02.txt AC 2 ms 256 KB
sample_03.txt AC 4 ms 256 KB
subtask_1_01.txt AC 2 ms 256 KB
subtask_1_02.txt AC 32 ms 384 KB
subtask_1_03.txt AC 51 ms 256 KB
subtask_1_04.txt AC 73 ms 384 KB
subtask_1_05.txt AC 34 ms 384 KB
subtask_1_06.txt AC 255 ms 640 KB
subtask_1_07.txt AC 210 ms 640 KB
subtask_1_08.txt AC 151 ms 640 KB
subtask_1_09.txt AC 59 ms 640 KB
subtask_1_10.txt AC 35 ms 256 KB
subtask_1_11.txt AC 68 ms 384 KB
subtask_1_12.txt AC 15 ms 256 KB
subtask_1_13.txt AC 127 ms 384 KB
subtask_1_14.txt AC 646 ms 640 KB
subtask_1_15.txt AC 519 ms 640 KB
subtask_1_16.txt AC 452 ms 640 KB
subtask_1_17.txt AC 632 ms 640 KB
subtask_1_18.txt AC 214 ms 640 KB