提出 #10325022
ソースコード 拡げる
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx")
#include <bits/stdc++.h>
namespace {
template<int n, typename T>
void mult(const T *__restrict a, const T *__restrict b, T *__restrict res) {
if (n <= 64) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
res[i + j] += a[i] * b[j];
}
}
} else {
const int mid = n / 2;
alignas(64) T btmp[n], E[n] = {};
auto atmp = btmp + mid;
for (int i = 0; i < mid; i++) {
atmp[i] = a[i] + a[i + mid];
btmp[i] = b[i] + b[i + mid];
}
mult<mid>(atmp, btmp, E);
mult<mid>(a + 0, b + 0, res);
mult<mid>(a + mid, b + mid, res + n);
for (int i = 0; i < mid; i++) {
const auto tmp = res[i + mid];
res[i + mid] += E[i] - res[i] - res[i + 2 * mid];
res[i + 2 * mid] += E[i + mid] - tmp - res[i + 3 * mid];
}
}
}
}
using ll = long long;
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(0);
const int NMAX = (1 << 11)*49;
alignas(64) static ll a[NMAX], b[NMAX * 2];
int n; ll k; std::cin >> n >> k;
for (int i = 0, val; i < n; i++) {
std::cin >> val;
a[val]++;
}
mult<NMAX>(a,a,b);
ll answ(0);
for (int i = 2 * NMAX - 1; k > 0 && i >= 0; i--) {
answ += std::min(k, b[i]) * i;
k -= b[i];
}
std::cout << answ << std::endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Handshake |
| ユーザ | dmkozyrev |
| 言語 | C++14 (GCC 5.4.1) |
| 得点 | 500 |
| コード長 | 1655 Byte |
| 結果 | AC |
| 実行時間 | 409 ms |
| メモリ | 5760 KiB |
ジャッジ結果
| セット名 | Sample | All | after_contest | ||||
|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 500 / 500 | 0 / 0 | ||||
| 結果 |
|
|
AC |
| セット名 | テストケース |
|---|---|
| Sample | s1.txt, s2.txt, s3.txt |
| All | 01.txt, 02.txt, 03.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 100.txt, 101.txt, 102.txt, 103.txt, 104.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 57.txt, 58.txt, 59.txt, 60.txt, s1.txt, s2.txt, s3.txt |
| after_contest |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 01.txt | AC | 395 ms | 4992 KiB |
| 02.txt | AC | 393 ms | 4992 KiB |
| 03.txt | AC | 395 ms | 4992 KiB |
| 06.txt | AC | 395 ms | 4992 KiB |
| 07.txt | AC | 401 ms | 5760 KiB |
| 08.txt | AC | 397 ms | 5760 KiB |
| 09.txt | AC | 397 ms | 5760 KiB |
| 10.txt | AC | 396 ms | 5760 KiB |
| 100.txt | AC | 393 ms | 4992 KiB |
| 101.txt | AC | 399 ms | 4992 KiB |
| 102.txt | AC | 395 ms | 4992 KiB |
| 103.txt | AC | 393 ms | 4992 KiB |
| 104.txt | AC | 402 ms | 4992 KiB |
| 11.txt | AC | 399 ms | 5760 KiB |
| 12.txt | AC | 398 ms | 5760 KiB |
| 13.txt | AC | 402 ms | 5760 KiB |
| 14.txt | AC | 401 ms | 5760 KiB |
| 15.txt | AC | 402 ms | 5760 KiB |
| 16.txt | AC | 401 ms | 5760 KiB |
| 17.txt | AC | 401 ms | 5760 KiB |
| 18.txt | AC | 409 ms | 5760 KiB |
| 19.txt | AC | 402 ms | 5760 KiB |
| 20.txt | AC | 402 ms | 5760 KiB |
| 21.txt | AC | 401 ms | 5760 KiB |
| 22.txt | AC | 405 ms | 5760 KiB |
| 23.txt | AC | 403 ms | 5760 KiB |
| 24.txt | AC | 400 ms | 5760 KiB |
| 25.txt | AC | 403 ms | 5760 KiB |
| 26.txt | AC | 403 ms | 5760 KiB |
| 27.txt | AC | 404 ms | 5760 KiB |
| 28.txt | AC | 406 ms | 5760 KiB |
| 29.txt | AC | 401 ms | 5760 KiB |
| 30.txt | AC | 401 ms | 5760 KiB |
| 31.txt | AC | 399 ms | 4992 KiB |
| 32.txt | AC | 404 ms | 4992 KiB |
| 33.txt | AC | 399 ms | 4992 KiB |
| 34.txt | AC | 399 ms | 4992 KiB |
| 35.txt | AC | 399 ms | 4992 KiB |
| 36.txt | AC | 399 ms | 4992 KiB |
| 37.txt | AC | 401 ms | 4992 KiB |
| 38.txt | AC | 402 ms | 4992 KiB |
| 39.txt | AC | 407 ms | 4992 KiB |
| 40.txt | AC | 400 ms | 4992 KiB |
| 41.txt | AC | 400 ms | 4992 KiB |
| 42.txt | AC | 401 ms | 4992 KiB |
| 43.txt | AC | 400 ms | 4992 KiB |
| 44.txt | AC | 407 ms | 4992 KiB |
| 45.txt | AC | 407 ms | 4992 KiB |
| 46.txt | AC | 402 ms | 4992 KiB |
| 47.txt | AC | 406 ms | 4992 KiB |
| 48.txt | AC | 405 ms | 4992 KiB |
| 49.txt | AC | 406 ms | 4992 KiB |
| 50.txt | AC | 400 ms | 4992 KiB |
| 51.txt | AC | 406 ms | 4992 KiB |
| 52.txt | AC | 402 ms | 4992 KiB |
| 53.txt | AC | 401 ms | 4992 KiB |
| 54.txt | AC | 401 ms | 4992 KiB |
| 55.txt | AC | 403 ms | 5760 KiB |
| 56.txt | AC | 400 ms | 4992 KiB |
| 57.txt | AC | 401 ms | 4992 KiB |
| 58.txt | AC | 399 ms | 4992 KiB |
| 59.txt | AC | 404 ms | 4992 KiB |
| 60.txt | AC | 400 ms | 4992 KiB |
| s1.txt | AC | 395 ms | 4992 KiB |
| s2.txt | AC | 395 ms | 4992 KiB |
| s3.txt | AC | 396 ms | 4992 KiB |