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 <bits/stdc++.h>
#include "boxes.h"
#define PB push_back
#define F first
#define S second
using namespace std;
pair<long long, long long>teams[10000002];
int kt, lt, n;
int dp(int poscur, int ksobrante){
return 0;
}
long long delivery(int N, int K, int L, int p[]) {
int ant = p[0], rep = 1, pointer = 0;
kt=K, n = N, lt = L;
if(N==1){
teams[0]={ant, 1};
pointer++;
}
for(int i = 1 ; i < N ; i++){
if(p[i]!=ant){
teams[pointer++]={ant, rep};
rep=1;
}else {
rep++;
}
ant=p[i];
if(i==N-1){
teams[pointer++]={ant, rep};
rep=1;
}
}
//for(int i = 0 ; i < pointer ; i ++)cout<<teams[i].F<<" "<<teams[i].S<<endl;
long long mx=L/2, temp=-1;
long long sm = 0;
if(K==1){
for(int i = 0 ; i < pointer ; i++){
if(teams[i].F>mx){
temp=i;
break;
}
sm+=teams[i].S*2*teams[i].F;
}
if(temp!=-1){
for(int i = pointer-1 ; i >= temp ; i--){
sm+=teams[i].S*2*(L-teams[i].F);
}
}
}else{
long long mn = 0, mp = pointer-1;
if(teams[mp].F<=mx)sm=teams[mp].F*2;
else if (teams[mn].F>mx)sm=(L-teams[mn].F)*2;
else sm=L;
}
return sm;
}
Compilation message (stderr)
boxes.cpp: In function 'int dp(int, int)':
boxes.cpp:9:12: warning: unused parameter 'poscur' [-Wunused-parameter]
9 | int dp(int poscur, int ksobrante){
| ~~~~^~~~~~
boxes.cpp:9:24: warning: unused parameter 'ksobrante' [-Wunused-parameter]
9 | int dp(int poscur, int ksobrante){
| ~~~~^~~~~~~~~
# | 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... |