Group by sum 
Aggregate 125,000,000 key/value records by key as fast as possible.
The task is equivalent to this query:
SELECT SUM(s * s) FROM (
SELECT SUM(value) AS s FROM records GROUP BY key
)
Input
Exactly 125,000,000 records on STDIN, 8 bytes each, back to back (1,000,000,000 bytes in total):
| Offset | Type | Field |
|---|---|---|
| 0 | uint32 little-endian |
key |
| 4 | uint32 little-endian |
value |
Guarantees:
- The records contain exactly 4,000,000 distinct keys.
- A key is an arbitrary value in
[0, 2^32)and may repeat any number of times. - A value is an arbitrary value in
[0, 2^32).
Output
Group the records by key, sum the values of each group, then write the sum of the squares of those group sums to STDOUT as a decimal string:
answer = SUM(sum_k * sum_k) over all 4,000,000 distinct keys k
Both the squaring and the outer sum are computed modulo 2^64 (unsigned 64-bit wraparound). An individual group sum never overflows uint64.
Example
For the six records
key=7 value=10
key=3 value=4000000000
key=7 value=20
key=9 value=1
key=3 value=4000000000
key=7 value=30
the group sums are sum_7 = 60, sum_3 = 8000000000 and sum_9 = 1, so
60*60 + 8000000000*8000000000 + 1*1 = 64000000000000003601
64000000000000003601 mod 2^64 = 8659767778871348753
and the program prints 8659767778871348753.
| Date | Author | Language | Status | Score | |
|---|---|---|---|---|---|
| Oct 9, 2026 23:44 | CPPg++14.2.0 | Success | 5,923 | ||
| Oct 9, 2026 23:42 | CPPg++14.2.0 | Success | 5,883 | ||
| Oct 9, 2026 23:36 | CPPg++14.2.0 | Success | 6,065 | ||
| Oct 9, 2026 23:04 | CPPg++14.2.0 | Success | 5,770+3.30 RP | ||
| Oct 9, 2026 22:59 | CPPg++14.2.0 | Success | 6,015 | ||
| Oct 9, 2026 22:58 | CPPg++14.2.0 | Success | 6,074 | ||
| Oct 9, 2026 22:46 | CPPg++14.2.0 | Success | 5,781+2.09 RP | ||
| Oct 9, 2026 22:26 | CPPg++14.2.0 | Success | 6,951 | ||
| Oct 9, 2026 22:19 | CPPg++14.2.0 | Success | 3,345+2'873.37 RP | ||
| Oct 9, 2026 22:16 | CPPg++14.2.0 | Success | 6,583 | ||
| Oct 9, 2026 21:49 | CPPg++14.2.0 | Success | 7,570 | ||
| Oct 9, 2026 21:43 | CPPg++14.2.0 | Success | 6,552 | ||
| Oct 9, 2026 21:38 | CPPg++14.2.0 | Success | 5,788+202.39 RP | ||
| Oct 9, 2026 21:27 | CPPg++14.2.0 | Success | 6,614 | ||
| Oct 9, 2026 21:27 | CPPg++14.2.0 | Success | 6,645 | ||
| Oct 9, 2026 21:20 | CPPg++14.2.0 | Success | 6,658 | ||
| Oct 9, 2026 20:28 | CPPg++14.2.0 | Success | 6,556+167.92 RP | ||
| Oct 9, 2026 20:22 | CPPclang++18.1.3 | Success | 7,378 | ||
| Oct 9, 2026 17:22 | GOgo1.26.2 | Success | 2,394 | ||
| Oct 9, 2026 17:22 | ZIG0.15.1 | Success | 2,376 | ||
| Oct 9, 2026 17:21 | RUSTrust-1.95.0 | Success | 2,368 | ||
| Oct 9, 2026 15:40 | GOgo1.26.2 | Success | 2,380 | ||
| Oct 9, 2026 15:40 | ZIG0.15.1 | Success | 2,399 | ||
| Oct 9, 2026 15:40 | RUSTrust-1.95.0 | Success | 2,407 | ||
| Oct 9, 2026 14:38 | CPPg++14.2.0 | Success | 7,460 | ||
| Oct 9, 2026 14:38 | CPPg++14.2.0 | Success | 7,367+1'357.40 RP | ||
| Oct 9, 2026 14:27 | GOgo1.26.2 | Success | 2,375 | ||
| Oct 9, 2026 14:27 | ZIG0.15.1 | Success | 2,385 | ||
| Oct 9, 2026 14:27 | RUSTrust-1.95.0 | Success | 2,378 | ||
| Oct 9, 2026 13:30 | GOgo1.26.2 | Success | 2,377 | ||
| Oct 9, 2026 13:30 | ZIG0.15.1 | Success | 2,387 | ||
| Oct 9, 2026 13:29 | RUSTrust-1.95.0 | Success | 2,376 | ||
| Oct 9, 2026 12:41 | GOgo1.26.2 | Success | 2,379 | ||
| Oct 9, 2026 12:41 | ZIG0.15.1 | Success | 2,379 | ||
| Oct 9, 2026 12:41 | RUSTrust-1.95.0 | Success | 2,374 | ||
| Oct 9, 2026 12:38 | CPPclang++18.1.3 | Success | 2,383 | ||
| Oct 9, 2026 11:37 | GOgo1.26.2 | Success | 2,372 | ||
| Oct 9, 2026 11:37 | ZIG0.15.1 | Success | 2,379 | ||
| Oct 9, 2026 11:37 | RUSTrust-1.95.0 | Success | 2,371 | ||
| Oct 9, 2026 10:41 | GOgo1.26.2 | Success | 2,379 | ||
| Oct 9, 2026 10:41 | ZIG0.15.1 | Success | 2,374 | ||
| Oct 9, 2026 10:41 | RUSTrust-1.95.0 | Success | 2,372 | ||
| Oct 9, 2026 10:19 | ZIG0.15.1 | Success | 2,383 | ||
| Oct 9, 2026 10:18 | RUSTrust-1.95.0 | Success | 2,382 | ||
| Oct 9, 2026 09:15 | GOgo1.26.2 | Success | 2,372 | ||
| Oct 9, 2026 08:50 | ZIG0.15.1 | Success | 2,381 | ||
| Oct 9, 2026 08:48 | RUSTrust-1.95.0 | Success | 2,373 | ||
| Oct 9, 2026 08:15 | GOgo1.26.2 | Error | |||
| Oct 9, 2026 08:12 | RUSTrust-1.95.0 | Success | 2,397 | ||
| Oct 9, 2026 07:56 | ZIG0.15.1 | Success | 2,368 | ||
| Oct 9, 2026 07:32 | RUSTrust-1.95.0 | Success | 2,382 | ||
| Oct 9, 2026 07:11 | RUSTrust-1.95.0 | Success | 2,408 | ||
| Oct 6, 2026 09:32 | CPPg++14.2.0 | Success | 86,085+116.16 RP | ||
| Oct 5, 2026 06:39 | CPPclang++18.1.3 | Success | 2,337+38.28 RP | ||
| Oct 5, 2026 06:34 | CPPg++14.2.0 | Success | 2,422 | ||
| Oct 5, 2026 06:24 | CPPclang++18.1.3 | Success | 2,351 | ||
| Oct 5, 2026 06:19 | CPPclang++18.1.3 | Success | 2,348+90.54 RP | ||
| Oct 5, 2026 06:06 | CPPclang++18.1.3 | Success | 2,399+152.34 RP | ||
| Oct 5, 2026 06:01 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 05:51 | CPPclang++18.1.3 | Success | 2,490+71.29 RP | ||
| Oct 5, 2026 05:42 | CPPclang++18.1.3 | Success | 2,535+161.19 RP | ||
| Oct 5, 2026 05:34 | CPPclang++18.1.3 | Success | 2,643+245.01 RP | ||
| Oct 5, 2026 05:32 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 05:22 | CPPclang++18.1.3 | Success | 2,826+24.87 RP | ||
| Oct 5, 2026 05:14 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 05:13 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 05:13 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 05:12 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 05:12 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 05:08 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 04:57 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 04:54 | CPPclang++18.1.3 | Success | 2,846+33.02 RP | ||
| Oct 5, 2026 04:47 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 04:05 | CPPclang++18.1.3 | Success | 2,873+8.46 RP | ||
| Oct 5, 2026 01:09 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 01:06 | CPPclang++18.1.3 | Success | 2,880+90.42 RP | ||
| Oct 5, 2026 00:57 | CPPclang++18.1.3 | Success | 2,957+42.91 RP | ||
| Oct 5, 2026 00:52 | CPPclang++18.1.3 | Success | 2,995+68.79 RP | ||
| Oct 5, 2026 00:44 | CPPclang++18.1.3 | Success | 4,008 | ||
| Oct 5, 2026 00:42 | CPPclang++18.1.3 | Error | |||
| Oct 5, 2026 00:40 | CPPclang++18.1.3 | Success | 3,890 | ||
| Oct 4, 2026 16:05 | CPPclang++18.1.3 | Success | 3,058+753.12 RP | ||
| Oct 4, 2026 16:01 | CPPclang++18.1.3 | Success | 3,973+96.27 RP | ||
| Oct 4, 2026 15:56 | CPPclang++18.1.3 | Success | 4,131+2'420.72 RP | ||
| Oct 4, 2026 15:17 | CPPclang++18.1.3 | Error | |||
| Oct 4, 2026 15:16 | CPPclang++18.1.3 | Error | |||
| Oct 3, 2026 07:35 | CPPg++14.2.0 | Error | |||
| Oct 3, 2026 07:34 | CPPg++14.2.0 | Error | |||
| Oct 3, 2026 07:33 | CPPg++14.2.0 | Error | |||
| Oct 2, 2026 07:31 | CPPclang++20.1.2 | Success | 79,189 | ||
| Oct 2, 2026 07:30 | CPPclang++20.1.2 | Success | 37,345 | ||
| Oct 2, 2026 07:15 | CPPclang++20.1.2 | Success | 47,334 | ||
| Oct 2, 2026 07:15 | CPPclang++20.1.2 | Success | 49,378 | ||
| Oct 2, 2026 07:14 | CPPclang++20.1.2 | Success | 47,855 | ||
| Oct 2, 2026 07:08 | CPPclang++20.1.2 | Success | 35,702 | ||
| Oct 2, 2026 07:04 | CPPclang++20.1.2 | Success | 28,146 | ||
| Oct 2, 2026 07:02 | CPPclang++20.1.2 | Success | 48,033 | ||
| Oct 2, 2026 06:58 | CPPclang++20.1.2 | Success | 37,118 | ||
| Oct 2, 2026 06:53 | CPPclang++20.1.2 | Success | 48,666 | ||
| Oct 2, 2026 06:32 | CPPclang++20.1.2 | Success | 72,588 |