Submission #313740

#TimeUsernameProblemLanguageResultExecution timeMemory
313740DanerZeinCarnival Tickets (IOI20_tickets)C++14
11 / 100
2 ms768 KiB
#include "tickets.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> ii;
typedef pair<ll,ii> iii;
typedef vector<ll> vi;
int vis[1510];
long long find_maximum(int k, std::vector<std::vector<int>> x) {
  vector<vector<int> > ti;
  int n=x.size();
  int m=x[0].size();
  ti.resize(n);
  deque<iii> dq;
  for(int i=0;i<n;i++){
    for(int j=0;j<m;j++){
      ti[i].push_back(-1);
      dq.push_back(iii(x[i][j],ii(i,j)));
    }
  }
  sort(dq.begin(),dq.end());
  memset(vis,0,sizeof vis);
  vi aux;
  for(int i=0;i<n/2;i++){
    ll x=dq.back().first;
    int a=dq.back().second.first;
    int b=dq.back().second.second;
    dq.pop_back();
    aux.push_back(x);
    ti[a][b]=0;
    vis[a]=1;
  }
  int j=0;
  while(j!=n/2){
    ll x=dq.front().first;
    int a=dq.front().second.first;
    int b=dq.front().second.second;
    if(!vis[a]){
      j++;
      aux.push_back(x);
      vis[a]=1;
      ti[a][b]=0;
    }
    dq.pop_front();
  }
  sort(aux.begin(),aux.end());
  ll b=aux[(n/2)-1];
  ll res=0;
  for(int i=0;i<n;i++){
    res+=abs(b-aux[i]);
  }
  allocate_tickets(ti);
  return res;
}
#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...