Submission #32413818
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXn = 1e5;
const int MAXm = 1e1;
template <typename T>
inline void read(T &a) {
char c;for (c = getchar(); (c < '0' || c > '9') && c != '-'; c = getchar());bool f = c == '-';T x = f ? 0 : (c ^ '0');for (c = getchar(); c >= '0' && c <= '9'; c = getchar()) {x = x * 10 + (c ^ '0');}a = f ? -x : x;
}
template <typename T, typename ...Argv>
inline void read(T &a, Argv &...argv) {
read(a), read(argv...);
}
const int MAXhx = 10237;
inline int redmod(int x) {
return (x < 0) ? x + MAXhx : x;
}
int n, m;
int a[MAXn + 10];
int b[MAXm + 10];
int c[MAXn + 10];
int cntx, cnty, x[MAXn + 10], y[MAXn + 10];
int cntder, der[MAXn * MAXm + 10];
int px[MAXm + 10], py[MAXm + 10];
struct Ele {
int v, cnt;
};
int cntelex, cnteley;
Ele elex[MAXn + 10], eley[MAXn + 10];
signed main() {
read(n, m);
for (int i = 1; i < n; ++i) {
read(a[i]);
}
for (int i = 1; i <= m; ++i) {
read(b[i]);
}
c[1] = b[1];
for (int i = 2; i <= n; ++i) {
c[i] = a[i - 1] - c[i - 1];
}
for (int i = 1; i <= n; i += 2) {
x[++cntx] = c[i];
}
for (int i = 2; i <= n; i += 2) {
y[++cnty] = c[i];
}
sort(x + 1, x + 1 + cntx);
sort(y + 1, y + 1 + cnty);
for (int i = 1; i <= cntx; ++i) {
if (cntelex && elex[cntelex].v == x[i]) {
++elex[cntelex].cnt;
} else {
elex[++cntelex] = Ele{x[i], 1};
}
}
for (int i = 1; i <= cnty; ++i) {
if (cnteley && eley[cnteley].v == y[i]) {
++eley[cnteley].cnt;
} else {
eley[++cnteley] = Ele{y[i], 1};
}
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
if (i & 1) {
der[++cntder] = b[j] - c[i];
} else {
der[++cntder] = c[i] - b[j];
}
}
}
sort(der + 1, der + 1 + cntder);
int ans = 0;
for (int i = 1; i <= m; ++i) {
px[i] = cntelex;
py[i] = 1;
}
for (int i = 1; i <= cntder; ++i) {
int partans = 0;
for (int j = 1; j <= m; ++j) {
while (px[j] > 1 && elex[px[j]].v > b[j] - der[i]) --px[j];
if (elex[px[j]].v == b[j] - der[i]) partans += elex[px[j]].cnt;
}
for (int j = 1; j <= m; ++j) {
while (py[j] < cnteley && eley[py[j]].v < b[j] + der[i]) ++py[j];
if (eley[py[j]].v == b[j] + der[i]) partans += eley[py[j]].cnt;
}
ans = max(ans, partans);
// printf(">%lld %lld %lld\n", i, der[i], partans);
}
printf("%lld\n", ans);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Lucky Numbers |
| User | rsdbk_husky_undo |
| Language | C++ (GCC 9.2.1) |
| Score | 500 |
| Code Size | 2433 Byte |
| Status | AC |
| Exec Time | 135 ms |
| Memory | 15488 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example0.txt, example1.txt |
| All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, example0.txt, example1.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 000.txt | AC | 8 ms | 3672 KiB |
| 001.txt | AC | 66 ms | 13752 KiB |
| 002.txt | AC | 69 ms | 13732 KiB |
| 003.txt | AC | 69 ms | 13820 KiB |
| 004.txt | AC | 68 ms | 13856 KiB |
| 005.txt | AC | 72 ms | 15240 KiB |
| 006.txt | AC | 28 ms | 10008 KiB |
| 007.txt | AC | 71 ms | 15292 KiB |
| 008.txt | AC | 77 ms | 15384 KiB |
| 009.txt | AC | 103 ms | 15472 KiB |
| 010.txt | AC | 14 ms | 6780 KiB |
| 011.txt | AC | 18 ms | 6796 KiB |
| 012.txt | AC | 14 ms | 6788 KiB |
| 013.txt | AC | 14 ms | 6588 KiB |
| 014.txt | AC | 14 ms | 6780 KiB |
| 015.txt | AC | 124 ms | 15064 KiB |
| 016.txt | AC | 110 ms | 14688 KiB |
| 017.txt | AC | 99 ms | 14356 KiB |
| 018.txt | AC | 89 ms | 14116 KiB |
| 019.txt | AC | 77 ms | 13856 KiB |
| 020.txt | AC | 133 ms | 15236 KiB |
| 021.txt | AC | 131 ms | 15488 KiB |
| 022.txt | AC | 129 ms | 15292 KiB |
| 023.txt | AC | 131 ms | 15412 KiB |
| 024.txt | AC | 133 ms | 15280 KiB |
| 025.txt | AC | 18 ms | 5228 KiB |
| 026.txt | AC | 47 ms | 8456 KiB |
| 027.txt | AC | 31 ms | 8420 KiB |
| 028.txt | AC | 34 ms | 6268 KiB |
| 029.txt | AC | 27 ms | 5636 KiB |
| 030.txt | AC | 120 ms | 15416 KiB |
| 031.txt | AC | 123 ms | 15284 KiB |
| 032.txt | AC | 122 ms | 15308 KiB |
| 033.txt | AC | 121 ms | 15488 KiB |
| 034.txt | AC | 121 ms | 15316 KiB |
| 035.txt | AC | 93 ms | 14484 KiB |
| 036.txt | AC | 104 ms | 14528 KiB |
| 037.txt | AC | 108 ms | 14704 KiB |
| 038.txt | AC | 121 ms | 14936 KiB |
| 039.txt | AC | 129 ms | 14976 KiB |
| 040.txt | AC | 123 ms | 14948 KiB |
| 041.txt | AC | 128 ms | 14880 KiB |
| 042.txt | AC | 121 ms | 14984 KiB |
| 043.txt | AC | 132 ms | 14968 KiB |
| 044.txt | AC | 135 ms | 15232 KiB |
| example0.txt | AC | 3 ms | 3588 KiB |
| example1.txt | AC | 2 ms | 3552 KiB |