#include <bits/stdc++.h>
#include "tickets.h"
//#include "grader.cpp"
using namespace std;
#define int long long
#define show(x,y) cout << y << " " << #x << endl;
#define show2(x,y,i,j) cout << y << " " << #x << " " << j << " " << #i << endl;
#define show3(x,y,i,j,p,q) cout << y << " " << #x << " " << j << " " << #i << " " << q << " " << #p << endl;
#define show4(x,y) for(auto it:y) cout << it << " "; cout << #x << endl;
typedef pair<long long,long long>pii;
typedef pair<long long,pii>pi2;
//allocate_tickets(vector<vector<int>>)
vector<pii>maxi;
vector<pii>mini;
int n2;
int memo[1505][3005];
bool visited[1505][3005];
pii pp[1505][3005];
int dp(int index, int cur){
if(index==n2){
if(cur==0) return 0;
else return -1e15;
}
if(visited[index][cur+n2]){
return memo[index][cur+n2];
}
int ans=-1e15;
int hold=dp(index+1,cur+1)-mini[index].first;
if(hold>=ans){
ans=hold;
pp[index][cur+n2]={index+1,cur+n2+1};
}
hold=dp(index+1,cur-1)+maxi[index].first;
if(hold>=ans){
ans=hold;
pp[index][cur+n2]={index+1,cur+n2-1};
}
visited[index][cur]=true;
return memo[index][cur+n2]=ans;
}
long long find_maximum(int32_t k, vector<vector<int32_t>>arr){
int n=arr.size();
n2=n;
int m=arr[0].size();
//k==1
vector<vector<int32_t>>ans;
ans.resize(n);
for(int x=0;x<n;x++){
ans[x]=vector<int32_t>(m,-1);
pii hold={-1,-1};
for(int y=0;y<m;y++){
hold=max(hold,{arr[x][y],y});
}
maxi.push_back(hold);
hold={1e15,1e15};
for(int y=0;y<m;y++){
hold=min(hold,{arr[x][y],y});
}
mini.push_back(hold);
}
pii cur={0,n2};
int take=dp(0,0);
for(int x=0;x<n;x++){
pii nxt=pp[cur.first][cur.second];
//cout << nxt.first << " " << nxt.second << endl;
if(nxt.second>cur.second) ans[x][mini[x].second]=0;
else ans[x][maxi[x].second]=0;
cur=nxt;
}
allocate_tickets(ans);
return take;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
2396 KB |
Contestant returned 298620960 but the tickets gives a total value of 500507564 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
2396 KB |
Output is correct |
2 |
Incorrect |
1 ms |
4444 KB |
Contestant returned 786069791 but the tickets gives a total value of 2930223109 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
2392 KB |
There is no ticket of color 0 on day 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
2396 KB |
There is no ticket of color 0 on day 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
2396 KB |
There is no ticket of color 0 on day 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
2396 KB |
There is no ticket of color 0 on day 1 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
2396 KB |
Contestant returned 298620960 but the tickets gives a total value of 500507564 |
2 |
Halted |
0 ms |
0 KB |
- |