結果
問題 | No.2566 美しい整数列 |
ユーザー | soto800 |
提出日時 | 2023-12-02 17:47:36 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 316 ms / 2,000 ms |
コード長 | 4,152 bytes |
コンパイル時間 | 3,500 ms |
コンパイル使用メモリ | 237,364 KB |
実行使用メモリ | 22,144 KB |
最終ジャッジ日時 | 2024-09-26 21:19:17 |
合計ジャッジ時間 | 9,648 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 1 ms
5,248 KB |
testcase_02 | AC | 1 ms
5,376 KB |
testcase_03 | AC | 1 ms
5,376 KB |
testcase_04 | AC | 301 ms
22,144 KB |
testcase_05 | AC | 316 ms
22,016 KB |
testcase_06 | AC | 191 ms
9,472 KB |
testcase_07 | AC | 197 ms
9,472 KB |
testcase_08 | AC | 199 ms
9,600 KB |
testcase_09 | AC | 198 ms
9,472 KB |
testcase_10 | AC | 199 ms
9,600 KB |
testcase_11 | AC | 229 ms
12,544 KB |
testcase_12 | AC | 231 ms
12,544 KB |
testcase_13 | AC | 228 ms
12,544 KB |
testcase_14 | AC | 224 ms
12,672 KB |
testcase_15 | AC | 222 ms
12,544 KB |
testcase_16 | AC | 257 ms
21,248 KB |
testcase_17 | AC | 261 ms
21,504 KB |
testcase_18 | AC | 264 ms
21,504 KB |
testcase_19 | AC | 175 ms
15,488 KB |
testcase_20 | AC | 233 ms
20,224 KB |
testcase_21 | AC | 255 ms
20,480 KB |
testcase_22 | AC | 164 ms
14,336 KB |
testcase_23 | AC | 205 ms
18,560 KB |
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using namespace std; #define lli long long int #define REP(i, s, n) for (lli i = s; i < n; i++) #define INF (1LL << 62) #define DEBUG 0 #define mp(a, b) make_pair(a, b) #define SORT(V) sort(V.begin(), V.end()) #define PI (3.141592653589794) #define TO_STRING(VariableName) #VariableName #define LOG1(x) \ if (DEBUG) cout << TO_STRING(x) << "=" << x << " " << endl; #define LOG2(x, y) \ if (DEBUG) \ cout << TO_STRING(x) << "=" << x << " " << TO_STRING(y) << "=" << y \ << endl; #define LOG3(x, y, z) \ if (DEBUG) \ cout << TO_STRING(x) << "=" << x << " " << TO_STRING(y) << "=" << y \ << " " << TO_STRING(z) << "=" << z << endl; #define LOG4(w, x, y, z) \ if (DEBUG) \ cout << TO_STRING(w) << "=" << w << " " << TO_STRING(x) << "=" << x \ << " " << TO_STRING(y) << "=" << y << " " << TO_STRING(z) << "=" \ << z << endl; #define LOG5(w, x, y, z, a) \ if (DEBUG) \ cout << TO_STRING(w) << "=" << w << " " << TO_STRING(x) << "=" << x \ << " " << TO_STRING(y) << "=" << y << " " << TO_STRING(z) << "=" \ << z << " " << TO_STRING(a) << "=" << a << endl; #define LOG6(w, x, y, z, a, b) \ if (DEBUG) \ cout << TO_STRING(w) << "=" << w << " " << TO_STRING(x) << "=" << x \ << " " << TO_STRING(y) << "=" << y << " " << TO_STRING(z) << "=" \ << z << " " << TO_STRING(a) << "=" << a << " " << TO_STRING(b) \ << "=" << b << endl; #define overload6(a, b, c, d, e, f, g, ...) g #define LOG(...) \ overload6(__VA_ARGS__, LOG6, LOG5, LOG4, LOG3, LOG2, LOG1)(__VA_ARGS__) template <class T> bool chmax(T &a, const T &b) { if (a < b) { a = b; return 1; } return 0; } template <class T> bool chmin(T &a, const T &b) { if (b < a) { a = b; return 1; } return 0; } mt19937 engine; std::chrono::system_clock::time_point start, endTime; std::ostream &operator<<(std::ostream &dest, __int128_t value) { std::ostream::sentry s(dest); if (s) { __uint128_t tmp = value < 0 ? -value : value; char buffer[128]; char *d = std::end(buffer); do { --d; *d = "0123456789"[tmp % 10]; tmp /= 10; } while (tmp != 0); if (value < 0) { --d; *d = '-'; } int len = std::end(buffer) - d; if (dest.rdbuf()->sputn(d, len) != len) { dest.setstate(std::ios_base::badbit); } } return dest; } __int128 parse(string &s) { __int128 ret = 0; for (int i = 0; i < s.length(); i++) { if ('0' <= s[i] && s[i] <= '9') { ret = 10 * ret + s[i] - '0'; } } return ret; } void solve() { lli N, M; cin >> N >> M; vector<lli> A(N), B(M), C(N); REP(i, 0, N) cin >> A[i]; REP(i, 0, M) cin >> B[i]; REP(i, 0, N) cin >> C[i]; vector<lli> D(N); lli costAll = 0; REP(i, 0, N) costAll += C[i]; REP(i, 0, N - 1) { D[i + 1] = D[i] + B[i % M]; } map<lli, lli> sub; REP(i, 0, N) { sub[A[i] - D[i]] += C[i]; } lli ans = INF; for (auto e : sub) { chmin(ans, costAll - e.second); } cout << ans << endl; } // Generated by 2.12.0 https://github.com/kyuridenamida/atcoder-tools (tips: // You use the default template now. You can remove this line by using your // custom template) int main() { lli n = 1; // cin >> n; while (n--) solve(); return 0; }