This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "tickets.h"
#include <bits/stdc++.h>
using namespace std;
void usun(vector<int>&ile, set<pair<int, int>>&ilejedynek, int x){
pair<int,int> it = {ile[x], x};
ilejedynek.erase(it);
ile[it.second]--;
ilejedynek.insert({it.first-1, it.second});
}
long long find_maximum(int k, std::vector<std::vector<int>> x) {
int n = x.size();
int m = x[0].size();
int i, j;
vector<vector<int>>answer(n);
for(i=0;i<n;i++)answer[i].push_back(0);
vector<int>zbior;
for(auto j: x)
zbior.push_back(j[0]);
sort(zbior.begin(), zbior.end());
long long wynik = 0;
for(i=0;i<n;i++)
if(i<n/2)
wynik-=zbior[i];
else
wynik+=zbior[i];
allocate_tickets(answer);
return wynik;
/*
set<pair<int,int>>ilejedynek;
vector<int>ile;
for(i=0;i<n;i++){
int suma = 0;
for(j=0;j<m;j++)
suma+=x[i][j];
ilejedynek.insert({suma, i});
ile.push_back(suma);
}
// for(i=0;i<n;i++)printf("%d ", ile[i]);
vector<std::vector<int>> answer(n);
int r = m;
int wynik=0;
for(int i=0;i<k;i++){
int pom = 0;
for(j=0;j<n/2;j++)
if((*ilejedynek.rbegin()).first>0){
auto it = *ilejedynek.rbegin();
answer[it.second].push_back(1);
usun(ile, ilejedynek, it.second);
pom++;
}
for(j=0;j<n;j++)
if((int)answer[j].size()<=i){
if(ile[j]==r){
answer[j].push_back(1);
usun(ile, ilejedynek, j);
pom++;
}
else{
answer[j].push_back(0);
}
}
wynik+=min(pom, n-pom);
r--;
}
// for(i=0;i<n;i++)printf("%d ", ile[i]);
for(i=0;i<n;i++){
while(ile[i]){
answer[i].push_back(1);
ile[i]--;
}
while((int)answer[i].size()<m)
answer[i].push_back(0);
}
// for(i=0;i<n;i++)printf("%d ", answer[i].size());
allocate_tickets(answer);
return wynik;*/
}
Compilation message (stderr)
tickets.cpp: In function 'long long int find_maximum(int, std::vector<std::vector<int> >)':
tickets.cpp:15:6: warning: unused variable 'm' [-Wunused-variable]
15 | int m = x[0].size();
| ^
tickets.cpp:16:9: warning: unused variable 'j' [-Wunused-variable]
16 | int i, j;
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |