Submission #849377

#TimeUsernameProblemLanguageResultExecution timeMemory
849377abcvuitunggioBoxes with souvenirs (IOI15_boxes)C++17
20 / 100
1 ms2648 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; vector <int> a,b; long long res,dp[10000001],dp2[10000001]; long long delivery(int N, int K, int L, int p[]){ for (int i=0;i<N;i++) if (p[i]<=L/2) a.push_back(p[i]); else b.push_back(L-p[i]); sort(a.begin(),a.end()); sort(b.begin(),b.end()); for (int i=0;i<a.size();i++) dp[i]=(i>=K?dp[i-K]:0)+a[i]*2; for (int i=0;i<b.size();i++) dp2[i]=(i>=K?dp2[i-K]:0)+b[i]*2; int i=(int)a.size()-1,j=(int)b.size()-1; while (i>=0||j>=0){ if (dp[i]+dp2[j]<=1LL*L*((i+j+K+1)/K)){ res+=dp[i]+dp2[j]; break; } int x=0,mx=0,tmp=K; while (tmp--){ if (i<0&&j<0) break; if (j<0||(i>=0&&a[i]>b[j])){ mx=max(mx,a[i]); i--; x|=1; continue; } mx=max(mx,b[j]); j--; x|=2; } if (x==3) res+=L; else res+=mx*2; } return res; }

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:14:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |     for (int i=0;i<a.size();i++)
      |                  ~^~~~~~~~~
boxes.cpp:16:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |     for (int i=0;i<b.size();i++)
      |                  ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...