Submission #65255528
Source Code Expand
/**
* @brief テンプレート
*/
// #pragma GCC target("avx2")
// #pragma GCC optimize("O3")
// #pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using vl = vector<ll>;
using vvl = vector<vl>;
using vvvl = vector<vvl>;
using pl = pair<ll, ll>;
using vp = vector<pl>;
using vvp = vector<vp>;
using vs = vector<string>;
using vvs = vector<vs>;
using vb = vector<bool>;
using vvb = vector<vb>;
using vvvb = vector<vvb>;
using vd = vector<double>;
using vvd = vector<vd>;
using vvvd = vector<vvd>;
#define _overload3(_1, _2, _3, name, ...) name
#define _rep(i, n) repi(i, 0, n)
#define repi(i, a, b) for(ll i = ll(a); i < ll(b); ++i)
#define rep(...) _overload3(__VA_ARGS__, repi, _rep, )(__VA_ARGS__)
#define all(x) std::begin(x), std::end(x)
constexpr ll inf = 0x1fffffffffffffffLL; // 2.3 * 10^18
template <class T, class U>
istream &operator>>(istream &is, pair<T, U> &p) {
is >> p.first >> p.second;
return is;
}
template <class T, class U>
ostream &operator<<(ostream &os, pair<T, U> &p) {
os << p.first << " " << p.second;
return os;
}
template <class T>
istream &operator>>(istream &is, vector<T> &v) {
for(auto &x : v) {
is >> x;
}
return is;
}
template <class T>
ostream &operator<<(ostream &os, const vector<T> &v) {
for(int i = 0; i < (int)v.size(); i++) {
if(i != (int)v.size() - 1)
os << v[i] << " ";
else
os << v[i];
}
return os;
}
template <typename T, typename... Args>
auto vec(T x, int arg, Args... args) {
if constexpr(sizeof...(args) == 0)
return vector<T>(arg, x);
else
return vector(arg, vec<T>(x, args...));
}
template <class T>
bool chmin(T &a, const T &b) {
return a > b ? a = b, true : false;
}
template <class T>
bool chmax(T &a, const T &b) {
return a < b ? a = b, true : false;
}
constexpr ll bit(ll x) {
return 1LL << x;
}
constexpr ll msk(ll x) {
return (1LL << x) - 1;
}
constexpr bool stand(ll x, int i) {
return x & bit(i);
}
struct IoSetup {
IoSetup() {
cin.tie(nullptr);
ios::sync_with_stdio(false);
cout << fixed << setprecision(10);
cerr << fixed << setprecision(10);
}
} iosetup;
/**
* @brief Debug
*/
#ifdef LOCAL
#define debug_assert(exp) assert(exp)
#else
#define debug_assert(exp) true
#endif
#ifdef LOCAL
#define dbg(x) std::cerr << __LINE__ << " : " << #x << " = " << (x) << std::endl
#else
#define dbg(x) true
#endif
// #include <atcoder/all>
// using namespace atcoder;
// generated by oj-template v4.8.1 (https://github.com/online-judge-tools/template-generator)
int main() {
ll N, D;
cin >> N >> D;
vl A(N);
cin >> A;
map<ll, ll> mp;
rep(i, N) {
mp[A[i]]++;
}
if(D == 0) {
ll ans = 0;
for(auto [k, v] : mp) {
ans += v - 1;
}
cout << ans << endl;
return 0;
}
ll M = mp.size();
vvl B(D), C(D);
for(auto [k, v] : mp) {
B[k % D].emplace_back(k);
C[k % D].emplace_back(v);
}
ll ans = 0;
rep(i, D) {
ll K = B[i].size();
vvl dp(K + 1, vl(2, inf));
dp[0][0] = 0;
rep(j, K) {
dp[j + 1][0] = min(dp[j][0], dp[j][1]) + C[i][j];
if(j == 0 || B[i][j] - B[i][j - 1] != D) {
dp[j + 1][1] = min(dp[j][0], dp[j][1]);
} else {
dp[j + 1][1] = dp[j][0];
}
}
ans += min(dp[K][0], dp[K][1]);
}
cout << ans << endl;
}
Submission Info
| Submission Time |
|
| Task |
D - Forbidden Difference |
| User |
kobaryo222 |
| Language |
C++ 23 (gcc 12.2) |
| Score |
425 |
| Code Size |
3598 Byte |
| Status |
AC |
| Exec Time |
199 ms |
| Memory |
69172 KiB |
Compile Error
Main.cpp: In function ‘int main()’:
Main.cpp:143:8: warning: unused variable ‘M’ [-Wunused-variable]
143 | ll M = mp.size();
| ^
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
425 / 425 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All |
00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 02_handmade_01.txt, 02_handmade_02.txt, 02_handmade_03.txt, 02_handmade_04.txt, 02_handmade_05.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_01.txt |
AC |
1 ms |
3384 KiB |
| 00_sample_02.txt |
AC |
1 ms |
3396 KiB |
| 00_sample_03.txt |
AC |
1 ms |
3332 KiB |
| 01_random_01.txt |
AC |
10 ms |
4616 KiB |
| 01_random_02.txt |
AC |
2 ms |
3728 KiB |
| 01_random_03.txt |
AC |
11 ms |
4628 KiB |
| 01_random_04.txt |
AC |
5 ms |
3508 KiB |
| 01_random_05.txt |
AC |
11 ms |
4728 KiB |
| 01_random_06.txt |
AC |
9 ms |
4324 KiB |
| 01_random_07.txt |
AC |
11 ms |
4588 KiB |
| 01_random_08.txt |
AC |
7 ms |
3836 KiB |
| 01_random_09.txt |
AC |
15 ms |
4576 KiB |
| 01_random_10.txt |
AC |
13 ms |
4304 KiB |
| 01_random_11.txt |
AC |
15 ms |
4588 KiB |
| 01_random_12.txt |
AC |
11 ms |
4468 KiB |
| 01_random_13.txt |
AC |
15 ms |
4660 KiB |
| 01_random_14.txt |
AC |
7 ms |
3828 KiB |
| 01_random_15.txt |
AC |
15 ms |
4624 KiB |
| 01_random_16.txt |
AC |
5 ms |
3568 KiB |
| 01_random_17.txt |
AC |
29 ms |
5940 KiB |
| 01_random_18.txt |
AC |
24 ms |
5384 KiB |
| 01_random_19.txt |
AC |
29 ms |
5648 KiB |
| 01_random_20.txt |
AC |
18 ms |
4984 KiB |
| 01_random_21.txt |
AC |
29 ms |
5692 KiB |
| 01_random_22.txt |
AC |
27 ms |
5660 KiB |
| 01_random_23.txt |
AC |
29 ms |
5116 KiB |
| 01_random_24.txt |
AC |
18 ms |
5300 KiB |
| 01_random_25.txt |
AC |
127 ms |
22196 KiB |
| 01_random_26.txt |
AC |
14 ms |
6964 KiB |
| 01_random_27.txt |
AC |
131 ms |
20572 KiB |
| 01_random_28.txt |
AC |
16 ms |
6900 KiB |
| 01_random_29.txt |
AC |
199 ms |
69172 KiB |
| 01_random_30.txt |
AC |
162 ms |
47852 KiB |
| 01_random_31.txt |
AC |
119 ms |
16008 KiB |
| 01_random_32.txt |
AC |
24 ms |
10556 KiB |
| 02_handmade_01.txt |
AC |
46 ms |
33616 KiB |
| 02_handmade_02.txt |
AC |
11 ms |
4660 KiB |
| 02_handmade_03.txt |
AC |
1 ms |
3604 KiB |
| 02_handmade_04.txt |
AC |
1 ms |
3324 KiB |
| 02_handmade_05.txt |
AC |
59 ms |
50076 KiB |