이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "tickets.h"
#define DIMN 1510
using namespace std;
pair <int , int> v[DIMN] , w[DIMN];
int f[DIMN];
long long find_maximum(int k, vector<vector<int>> x) {
int n = x.size() , i , pv , pw;
int m = x[0].size();
long long sol = 0;
vector<vector<int>> answer;
for (i = 0; i < n; i++) {
vector<int> row;
row.resize(m , -1);
answer.push_back(row);
}
if (m == 1){
for (i = 0 ; i < n ; i++){
answer[i][0] = 0;
v[i] = make_pair(x[i][0] , i);
}
sort (v , v + n);
for (i = 0 ; i < n ; i++){
if (i < n / 2)
sol = sol - v[i].first;
else
sol = sol + v[i].first;
}
}
else if (k == 1){
for (i = 0 ; i < n ; i++){
v[i] = make_pair(x[i][0] , i);
w[i] = make_pair(x[i].back() , i);
}
sort (v , v + n);
sort (w , w + n);
pv = 0;
pw = n - 1;
for (i = 0 ; i < n / 2 ; i++){
while (f[w[pw].second] == 1)
pw--;
answer[w[pw].second][m - 1] = 0;
f[w[pw].second] = 1;
sol += w[pw].first;
pw--;
while (f[v[pv].second] == 1)
pv++;
answer[v[pv].second][0] = 0;
f[v[pv].second] = 1;
sol -= v[pv].first;
pv++;
}
}
allocate_tickets(answer);
return sol;
}
# | 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... |