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
AC × 2
AC × 47
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