#include "tickets.h"
#include <bits/stdc++.h>
using namespace std;
struct cell {
int i, j, val;
};
const int MAX_N = 1500;
const int MAX_M = 1500;
int x[MAX_N + 1][MAX_M + 1];
long long sx[MAX_N + 1][MAX_M + 1];
vector<int> mins[MAX_N + 1], maxs[MAX_N + 1];
bool isMax[MAX_N + 1];
vector<cell> opt;
long long find_maximum( int k, vector<vector<int>> X ) {
int n = X.size();
int m = X[0].size();
vector<vector<int>> answer( n );
long long sum = 0;
for ( int i = 1; i <= n; i++ ) {
answer[i - 1].resize( m );
for ( int j = 1; j <= m; j++ ) {
x[i][j] = X[i - 1][j - 1];
sx[i][j] = sx[i][j - 1] + x[i][j];
answer[i - 1][j - 1] = -1;
}
}
for ( int i = 1; i <= n; i++ ) {
for ( int j = 1; j <= k; j++ ) {
mins[i].push_back( j );
opt.push_back( { i, m - (k - j), x[i][j] + x[i][m - (k - j)] } );
}
}
sort( opt.begin(), opt.end(), []( cell a, cell b ) {
if ( a.val == b.val )
return a.j > b.j;
return a.val > b.val;
} );
for ( int i = 0; i < n * k / 2; i++ ) {
mins[opt[i].i].pop_back();
maxs[opt[i].i].push_back( opt[i].j );
}
for ( int i = 1; i <= n; i++ )
reverse( mins[i].begin(), mins[i].end() );
for ( int pas = 0; pas < k; pas++ ) {
for ( int i = 1; i <= n; i++ )
isMax[i] = false;
vector<pair<int, int>> maxx;
for ( int i = 1; i <= n; i++ ) {
if ( !maxs[i].empty() )
maxx.push_back( { (mins[i].empty() ? 0 : x[i][maxs[i].back()]), i } );
}
sort( maxx.begin(), maxx.end() );
for ( int i = 0; i < n / 2; i++ ) {
isMax[maxx[i].second] = true;
answer[maxx[i].second - 1][maxs[maxx[i].second].back() - 1] = pas;
sum += x[maxx[i].second][maxs[maxx[i].second].back()];
maxs[maxx[i].second].pop_back();
}
for ( int i = 1; i <= n; i++ ) {
if ( isMax[i] )
continue;
isMax[i] = true;
answer[i - 1][mins[i].back() - 1] = pas;
sum -= x[i][mins[i].back()];
mins[i].pop_back();
}
}
allocate_tickets( answer );
return sum;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2396 KB |
Output is correct |
2 |
Correct |
1 ms |
2396 KB |
Output is correct |
3 |
Correct |
1 ms |
2396 KB |
Output is correct |
4 |
Correct |
1 ms |
2904 KB |
Output is correct |
5 |
Correct |
1 ms |
5724 KB |
Output is correct |
6 |
Correct |
5 ms |
15964 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2648 KB |
Output is correct |
2 |
Correct |
1 ms |
2396 KB |
Output is correct |
3 |
Correct |
1 ms |
2396 KB |
Output is correct |
4 |
Correct |
2 ms |
2908 KB |
Output is correct |
5 |
Correct |
18 ms |
9564 KB |
Output is correct |
6 |
Correct |
411 ms |
77904 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2396 KB |
Output is correct |
2 |
Correct |
1 ms |
2396 KB |
Output is correct |
3 |
Correct |
0 ms |
2396 KB |
Output is correct |
4 |
Correct |
2 ms |
3164 KB |
Output is correct |
5 |
Correct |
20 ms |
10428 KB |
Output is correct |
6 |
Correct |
482 ms |
102396 KB |
Output is correct |
7 |
Correct |
513 ms |
108008 KB |
Output is correct |
8 |
Correct |
3 ms |
3420 KB |
Output is correct |
9 |
Correct |
1 ms |
2396 KB |
Output is correct |
10 |
Correct |
1 ms |
2396 KB |
Output is correct |
11 |
Correct |
1 ms |
2396 KB |
Output is correct |
12 |
Runtime error |
8 ms |
10312 KB |
Execution killed with signal 11 |
13 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2396 KB |
Output is correct |
2 |
Correct |
1 ms |
2564 KB |
Output is correct |
3 |
Correct |
1 ms |
2396 KB |
Output is correct |
4 |
Correct |
3 ms |
3164 KB |
Output is correct |
5 |
Correct |
30 ms |
11520 KB |
Output is correct |
6 |
Correct |
5 ms |
5184 KB |
Output is correct |
7 |
Correct |
10 ms |
16476 KB |
Output is correct |
8 |
Correct |
852 ms |
127196 KB |
Output is correct |
9 |
Correct |
759 ms |
120336 KB |
Output is correct |
10 |
Correct |
730 ms |
118468 KB |
Output is correct |
11 |
Correct |
782 ms |
125132 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2392 KB |
Output is correct |
2 |
Correct |
2 ms |
2908 KB |
Output is correct |
3 |
Correct |
2 ms |
2904 KB |
Output is correct |
4 |
Correct |
2 ms |
2904 KB |
Output is correct |
5 |
Correct |
3 ms |
3160 KB |
Output is correct |
6 |
Correct |
3 ms |
3164 KB |
Output is correct |
7 |
Correct |
1 ms |
2648 KB |
Output is correct |
8 |
Correct |
1 ms |
2908 KB |
Output is correct |
9 |
Correct |
2 ms |
3164 KB |
Output is correct |
10 |
Correct |
3 ms |
3164 KB |
Output is correct |
11 |
Correct |
3 ms |
3160 KB |
Output is correct |
12 |
Correct |
2 ms |
3160 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2392 KB |
Output is correct |
2 |
Correct |
2 ms |
2908 KB |
Output is correct |
3 |
Correct |
2 ms |
2904 KB |
Output is correct |
4 |
Correct |
2 ms |
2904 KB |
Output is correct |
5 |
Correct |
3 ms |
3160 KB |
Output is correct |
6 |
Correct |
3 ms |
3164 KB |
Output is correct |
7 |
Correct |
1 ms |
2648 KB |
Output is correct |
8 |
Correct |
1 ms |
2908 KB |
Output is correct |
9 |
Correct |
2 ms |
3164 KB |
Output is correct |
10 |
Correct |
3 ms |
3164 KB |
Output is correct |
11 |
Correct |
3 ms |
3160 KB |
Output is correct |
12 |
Correct |
2 ms |
3160 KB |
Output is correct |
13 |
Correct |
21 ms |
9560 KB |
Output is correct |
14 |
Correct |
19 ms |
9488 KB |
Output is correct |
15 |
Correct |
27 ms |
10508 KB |
Output is correct |
16 |
Correct |
32 ms |
11516 KB |
Output is correct |
17 |
Correct |
1 ms |
4696 KB |
Output is correct |
18 |
Correct |
3 ms |
5980 KB |
Output is correct |
19 |
Correct |
2 ms |
5812 KB |
Output is correct |
20 |
Correct |
24 ms |
10532 KB |
Output is correct |
21 |
Correct |
25 ms |
10496 KB |
Output is correct |
22 |
Correct |
31 ms |
11380 KB |
Output is correct |
23 |
Correct |
27 ms |
11276 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2396 KB |
Output is correct |
2 |
Correct |
1 ms |
2396 KB |
Output is correct |
3 |
Correct |
1 ms |
2396 KB |
Output is correct |
4 |
Correct |
1 ms |
2904 KB |
Output is correct |
5 |
Correct |
1 ms |
5724 KB |
Output is correct |
6 |
Correct |
5 ms |
15964 KB |
Output is correct |
7 |
Correct |
1 ms |
2648 KB |
Output is correct |
8 |
Correct |
1 ms |
2396 KB |
Output is correct |
9 |
Correct |
1 ms |
2396 KB |
Output is correct |
10 |
Correct |
2 ms |
2908 KB |
Output is correct |
11 |
Correct |
18 ms |
9564 KB |
Output is correct |
12 |
Correct |
411 ms |
77904 KB |
Output is correct |
13 |
Correct |
1 ms |
2396 KB |
Output is correct |
14 |
Correct |
1 ms |
2396 KB |
Output is correct |
15 |
Correct |
0 ms |
2396 KB |
Output is correct |
16 |
Correct |
2 ms |
3164 KB |
Output is correct |
17 |
Correct |
20 ms |
10428 KB |
Output is correct |
18 |
Correct |
482 ms |
102396 KB |
Output is correct |
19 |
Correct |
513 ms |
108008 KB |
Output is correct |
20 |
Correct |
3 ms |
3420 KB |
Output is correct |
21 |
Correct |
1 ms |
2396 KB |
Output is correct |
22 |
Correct |
1 ms |
2396 KB |
Output is correct |
23 |
Correct |
1 ms |
2396 KB |
Output is correct |
24 |
Runtime error |
8 ms |
10312 KB |
Execution killed with signal 11 |
25 |
Halted |
0 ms |
0 KB |
- |