제출 #306476

#제출 시각아이디문제언어결과실행 시간메모리
306476giorgikob카니발 티켓 (IOI20_tickets)C++14
11 / 100
2 ms768 KiB
#include "tickets.h"
#include <vector>

#include<bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define pb push_back
using namespace std;

long long find_maximum(int k, std::vector<std::vector<int>> x) {
	int n = x.size();
	int m = x[0].size();

    bool ok = true;
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            if(x[i][j] > 1){
                ok = false;
            }
        }
    }

    vector<vector<int>> answer(n, vector<int>(m,-1));
    ll result = 0;

	if(m == 1){
        vector<vector<int>> answer(n, vector<int>(m,0));
        vector<int>v;
        for(int i = 0; i < n; i++) v.pb(x[i][0]);
        sort(v.begin(),v.end());
        ll result = 0;
        for(int i = 0; i < n; i++) result += abs(v[i]-v[n/2]);
        allocate_tickets(answer);
        return result;
	}

	if(ok){
        /*vector< pair<vector<int>,int> > v(n);
        for(int i = 0; i < n; i++){
            v[i] = {x[i],i};
        }*/
        //sort(x.begin(),x.end());

        vector<int>a(m,0);
        vector<pair<int,int>>p;
        for(int j = 0; j < m; j++){
            int sum = 0;
            for(int i = 0; i < n; i++){
                sum += x[i][j];
            }
            a[j] = min(sum,n-sum);
            p.pb({a[j],j});
        }
        sort(p.rbegin(), p.rend());
        //int l = 0, r = m-1;
        for(int i = 0; i < k; i++){
            int l = p[i].ss;
            result += p[i].ff;
            for(int j = 0; j < n; j++){
                answer[j][l] = i;
            }

        }
        allocate_tickets(answer);
        return result;
	}

    allocate_tickets(answer);
	return result;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...