제출 #300759

#제출 시각아이디문제언어결과실행 시간메모리
300759BaraaArmoush카니발 티켓 (IOI20_tickets)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair <int,int> pii; 

ll find_maximum(int k, vector <vector <int>> a)
{
    int n = a.size();
    int m = a[0].size();

    vector <vector <pii>> b(n, vector <pii> (m));
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
            b[i][j] = pii(a[i][j], j);

    for(int i = 0; i < n; i++)
        sort(b[i].begin(), b[i].end());

    vector <int> PrefixTaken(n, k);
    vector <int> SuffixTaken(n, 0);

    ll Ans = 0;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < k; j++)
            Ans -= b[i][j].first;

    priority_queue <pair <int,pii>> q;
    for(int i = 0; i < n; i++)
        q.emplace(b[i][m - 1].first + b[i][k - 1].first, pii(i, m - 1));

    for(int repeat = 0; repeat < k * n / 2; repeat++)
    {
        pair <int,pii> p = q.top();
        q.pop();

        int x = p.first;
        int i = p.second.first;
        int j = p.second.second;
        int r = m - j + 1;

        PrefixTaken[i]--;
        SuffixTaken[i]++;

        Ans += x;

        if(k - r >= 0)
            q.emplace(b[i][m - r].first + b[i][k - r].first, pii(i, j - 1));
    }

    vector <vector <int>> s(n, vector <int> (m, -1));

    vector <pii> Sum(k);
    for(int j = 0; j < k; j++)  Sum[j] = pii(0, j);

    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < SuffixTaken[i]; j++)
        {
            Sum[j].first++;
            s[i][b[i][j].second] = Sum[j].second;
        }

        for(int j = 1; j <= PrefixTaken[i]; j++)
        {
            Sum[k - j].first--;
            s[i][b[i][m - j].second] = Sum[k - j].second;
        }

        sort(Sum.begin(), Sum.end());
    }

    for(int j = 0; j < k; j++)
        assert(Sum[j].first == 0);

    return allocate_tickets(s), Ans;
}

컴파일 시 표준 에러 (stderr) 메시지

tickets.cpp: In function 'll find_maximum(int, std::vector<std::vector<int> >)':
tickets.cpp:77:12: error: 'allocate_tickets' was not declared in this scope
   77 |     return allocate_tickets(s), Ans;
      |            ^~~~~~~~~~~~~~~~