提出 #68554275
ソースコード 拡げる
#include <iostream>
#include <vector>
#include <algorithm>
#include <climits>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int N, M, L;
cin >> N >> M >> L;
vector<int> A(N);
for (int i = 0; i < N; ++i) {
cin >> A[i];
}
vector<vector<int>> groups(L);
for (int i = 0; i < N; ++i) {
groups[i % L].push_back(A[i]);
}
vector<int> dp(M, INT_MAX);
dp[0] = 0;
for (int r = 0; r < L; ++r) {
vector<int>& arr = groups[r];
if (arr.empty()) continue;
sort(arr.begin(), arr.end());
int n = arr.size();
long long total_sum = 0;
for (int num : arr) {
total_sum += num;
}
vector<long long> cost_x(M);
for (int x = 0; x < M; ++x) {
int idx = upper_bound(arr.begin(), arr.end(), x) - arr.begin();
long long count_le = idx;
cost_x[x] = (long long)x * n - total_sum + (long long)M * (n - count_le);
}
vector<int> new_dp(M, INT_MAX);
for (int s = 0; s < M; ++s) {
if (dp[s] == INT_MAX) continue;
for (int x = 0; x < M; ++x) {
int new_s = (s + x) % M;
long long new_cost = (long long)dp[s] + cost_x[x];
if (new_cost < new_dp[new_s]) {
new_dp[new_s] = new_cost;
}
}
}
dp = move(new_dp);
}
cout << dp[0] << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Subarray Sum Divisibility |
| ユーザ | yangyang1000 |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 475 |
| コード長 | 1569 Byte |
| 結果 | AC |
| 実行時間 | 217 ms |
| メモリ | 3660 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 475 / 475 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample00.txt, sample01.txt |
| All | sample00.txt, sample01.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt, testcase34.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| sample00.txt | AC | 1 ms | 3480 KiB |
| sample01.txt | AC | 1 ms | 3572 KiB |
| testcase00.txt | AC | 1 ms | 3500 KiB |
| testcase01.txt | AC | 1 ms | 3636 KiB |
| testcase02.txt | AC | 1 ms | 3508 KiB |
| testcase03.txt | AC | 1 ms | 3516 KiB |
| testcase04.txt | AC | 108 ms | 3660 KiB |
| testcase05.txt | AC | 206 ms | 3400 KiB |
| testcase06.txt | AC | 1 ms | 3644 KiB |
| testcase07.txt | AC | 104 ms | 3652 KiB |
| testcase08.txt | AC | 211 ms | 3548 KiB |
| testcase09.txt | AC | 1 ms | 3440 KiB |
| testcase10.txt | AC | 12 ms | 3588 KiB |
| testcase11.txt | AC | 217 ms | 3484 KiB |
| testcase12.txt | AC | 1 ms | 3652 KiB |
| testcase13.txt | AC | 1 ms | 3652 KiB |
| testcase14.txt | AC | 1 ms | 3576 KiB |
| testcase15.txt | AC | 1 ms | 3500 KiB |
| testcase16.txt | AC | 1 ms | 3480 KiB |
| testcase17.txt | AC | 18 ms | 3436 KiB |
| testcase18.txt | AC | 1 ms | 3508 KiB |
| testcase19.txt | AC | 3 ms | 3656 KiB |
| testcase20.txt | AC | 1 ms | 3416 KiB |
| testcase21.txt | AC | 1 ms | 3404 KiB |
| testcase22.txt | AC | 2 ms | 3520 KiB |
| testcase23.txt | AC | 7 ms | 3500 KiB |
| testcase24.txt | AC | 18 ms | 3376 KiB |
| testcase25.txt | AC | 155 ms | 3388 KiB |
| testcase26.txt | AC | 183 ms | 3504 KiB |
| testcase27.txt | AC | 175 ms | 3528 KiB |
| testcase28.txt | AC | 1 ms | 3584 KiB |
| testcase29.txt | AC | 3 ms | 3520 KiB |
| testcase30.txt | AC | 7 ms | 3524 KiB |
| testcase31.txt | AC | 25 ms | 3592 KiB |
| testcase32.txt | AC | 196 ms | 3460 KiB |
| testcase33.txt | AC | 210 ms | 3604 KiB |
| testcase34.txt | AC | 217 ms | 3536 KiB |