Submission #1140176

#TimeUsernameProblemLanguageResultExecution timeMemory
1140176tmmSwimming competition (LMIO18_plaukimo_varzybos)C++20
60 / 100
2095 ms8244 KiB
/* * #include <iostream> #include <vector> #include <algorithm> using namespace std; const int N_max = 1000005; int n, A, B; vector<int> v; int dp[N_max]; void reading(){ cin >> n >> A >> B; v.resize(n + 1); for(int i = 1; i <= n; i++) { cin >> v[i]; dp[i] = -1; } sort(v.begin() + 1, v.end()); } int main() { reading(); for(int i = 0; i <= n - A; i++) { if (dp[i + A] == -1) dp[i + A] = max(v[i + A] - v[i + 1], dp[i]); else dp[i + A] = min(dp[i + A], max(v[i + A] - v[i + 1], dp[i])); for (int j = A + 1; j <= B && i + j <= n; j++) if(dp[i + j] == -1) dp[i + j] = max(v[i + j] - v[i + 1], dp[i]); else dp[i + j] = min(dp[i + j], max(v[i + j] - v[i + 1], dp[i])); cout << i << " " << dp[i] << endl; } cout << dp[n]; } */ #include <iostream> #include <vector> #include <algorithm> #include <fstream> using namespace std; const int N_max = 1000005; ifstream fin("a.in"); int n, A, B; vector<int> v; int dp[N_max]; void reading(){ cin >> n >> A >> B; v.resize(n + 1); for(int i = 1; i <= n; i++) { cin >> v[i]; dp[i] = -1; } sort(v.begin() + 1, v.end()); } int main() { reading(); for(int i = A; i <= n; i++){ for(int j = A; j <= B && i >= j; j++) if(dp[i - j] != -1){ if(dp[i] == -1) dp[i] = max(dp[i - j], v[i] - v[i - j + 1]); else dp[i] = min(dp[i], max(dp[i - j], v[i] - v[i - j + 1])); } } cout << dp[n]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...