Submission #1290121

#TimeUsernameProblemLanguageResultExecution timeMemory
1290121eri16Carnival Tickets (IOI20_tickets)C++20
11 / 100
1 ms836 KiB
#include<bits/stdc++.h>
#include "tickets.h"
using namespace std;

long long fnd_ans(int k,vector<vector<int>> v,vector<vector<int>> ans){
    
    vector <int> vv[k];
    
    int n=v.size();
    int m=v[0].size();    
    
    for (int i=0; i<n; i++){
        for (int j=0; j<m; j++){
            if (ans[i][j]!=-1){
                vv[ans[i][j]].push_back(v[i][j]);
            }
        }
    }
    
    long long sm=0,tt;
    
    for (int i = 0; i < k; ++i) {
        if (vv[i].empty()) continue;
        auto &bucket = vv[i];
        sort(bucket.begin(), bucket.end());
        size_t mid = bucket.size() / 2;            
        long long median = (long long)bucket[mid];              
        for (int x : bucket) {
            long long diff = (long long)x - median;
            sm += (diff >= 0 ? diff : -diff);
        }
    } 
  
    return sm;
}


long long find_maximum(int k, vector<vector<int>> v){
    
    int n=v.size();
    int m=v[0].size();
    
    vector<vector<int>> ans(n);
    
    if (m==1){
        for (int i=0; i<n; i++){
            ans[i].push_back(0);
        }
    }

    allocate_tickets(ans);
    return fnd_ans(k,v,ans);
}
#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...