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 | |
|---|---|---|---|---|---|
| Aug 12, 2026 15:47 | CPPg++14.2.0 | Success | 84,790 | ||
| Aug 12, 2026 15:26 | CPPclang++20.1.2 | Success | 83,184+120.22 RP | ||
| Aug 11, 2026 20:27 | CPPg++10.5.0 | Success | 47,921 | ||
| Aug 11, 2026 20:24 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 19:40 | CPPg++11.5.0 | Error | |||
| Aug 11, 2026 18:39 | CPPg++10.5.0 | Success | 65,143 | ||
| Aug 11, 2026 18:34 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 18:32 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 18:28 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 18:26 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 18:22 | CPPg++11.5.0 | Error | |||
| Aug 11, 2026 18:16 | CPPg++10.5.0 | Success | 12,959 | ||
| Aug 11, 2026 18:11 | CPPg++11.5.0 | Error | |||
| Aug 11, 2026 18:08 | CPPg++10.5.0 | Success | 11,887+288.04 RP | ||
| Aug 11, 2026 18:05 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 17:58 | CPPg++10.5.0 | Success | 51,627 | ||
| Aug 11, 2026 17:52 | CPPg++10.5.0 | Success | 18,487 | ||
| Aug 11, 2026 17:47 | CPPg++10.5.0 | Success | 18,076+433.00 RP | ||
| Aug 11, 2026 17:43 | CPPg++11.5.0 | Success | 83,179+125.22 RP | ||
| Aug 11, 2026 16:38 | CPPg++10.5.0 | Success | 7,540 | ||
| Aug 11, 2026 16:31 | CPPg++10.5.0 | Success | 7,476+13.81 RP | ||
| Aug 11, 2026 16:28 | CPPg++10.5.0 | Success | 7,579 | ||
| Aug 11, 2026 16:27 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 16:24 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 16:23 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 16:10 | CPPg++10.5.0 | Success | 7,554+24.76 RP | ||
| Aug 11, 2026 16:10 | CPPg++10.5.0 | Success | 7,698+79.08 RP | ||
| Aug 11, 2026 16:09 | CPPg++10.5.0 | Success | 8,197+70.80 RP | ||
| Aug 11, 2026 16:09 | CPPg++10.5.0 | Success | 8,702+140.49 RP | ||
| Aug 11, 2026 15:59 | CPPg++10.5.0 | Success | 9,915 | ||
| Aug 11, 2026 15:57 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 15:41 | CPPg++10.5.0 | Success | 9,914+131.02 RP | ||
| Aug 11, 2026 15:21 | CPPg++10.5.0 | Success | 11,405 | ||
| Aug 11, 2026 15:21 | CPPg++10.5.0 | Success | 11,394+754.60 RP | ||
| Aug 11, 2026 15:18 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 15:18 | CPPg++10.5.0 | Error | |||
| Aug 11, 2026 14:55 | CPPclang++20.1.2 | Success | 81,635 | ||
| Aug 11, 2026 14:54 | CPPg++14.2.0 | Success | 83,003 | ||
| Aug 11, 2026 14:54 | CPPg++13.3.0 | Success | 82,306 | ||
| Aug 11, 2026 14:54 | CPPg++12.4.0 | Success | 82,637 | ||
| Aug 11, 2026 14:54 | CPPg++11.5.0 | Success | 81,264+2.46 RP | ||
| Aug 11, 2026 14:53 | CPPg++10.5.0 | Success | 82,921+125.60 RP | ||
| Aug 11, 2026 07:15 | RUSTrust-1.95.0 | Error | |||
| Aug 11, 2026 07:11 | RUSTrust-1.95.0 | Success | 44,896+227.74 RP | ||
| Aug 10, 2026 18:07 | CPPg++10.5.0 | Success | 8,532+373.21 RP | ||
| Aug 10, 2026 17:51 | CPPg++10.5.0 | Success | 12,518+145.31 RP | ||
| Aug 10, 2026 12:19 | CPPg++14.2.0 | Success | 4,060 | ||
| Aug 10, 2026 09:05 | CPPg++13.3.0 | Success | 2,977 | ||
| Aug 10, 2026 08:58 | RUSTrust-1.95.0 | Success | 2,968+9.07 RP | ||
| Aug 10, 2026 08:54 | RUSTrust-1.95.0 | Success | 2,974+1.13 RP | ||
| Aug 10, 2026 08:48 | CPPg++14.2.0 | Success | 2,970+11.32 RP | ||
| Aug 10, 2026 08:45 | RUSTrust-1.95.0 | Success | 2,980 | ||
| Aug 10, 2026 08:43 | CPPg++14.2.0 | Success | 2,975+4.52 RP | ||
| Aug 10, 2026 08:41 | RUSTrust-1.95.0 | Success | 2,996 | ||
| Aug 10, 2026 08:40 | CPPg++14.2.0 | Success | 2,979 | ||
| Aug 10, 2026 08:36 | CPPg++14.2.0 | Success | 2,981 | ||
| Aug 10, 2026 08:33 | CPPg++13.3.0 | Success | 2,977 | ||
| Aug 10, 2026 08:29 | RUSTrust-1.95.0 | Success | 3,016 | ||
| Aug 10, 2026 08:24 | RUSTrust-1.95.0 | Success | 3,048 | ||
| Aug 10, 2026 08:22 | CPPg++14.2.0 | Success | 2,981 | ||
| Aug 10, 2026 08:14 | CPPg++14.2.0 | Success | 2,977 | ||
| Aug 10, 2026 08:12 | RUSTrust-1.95.0 | Success | 3,159 | ||
| Aug 10, 2026 08:07 | CPPg++14.2.0 | Success | 2,977+43.47 RP | ||
| Aug 10, 2026 07:53 | CPPg++14.2.0 | Success | 3,015+12.06 RP | ||
| Aug 10, 2026 07:51 | CPPg++14.2.0 | Success | 3,028 | ||
| Aug 10, 2026 07:48 | CPPg++14.2.0 | Success | 3,043 | ||
| Aug 10, 2026 07:46 | CPPg++14.2.0 | Success | 3,110 | ||
| Aug 10, 2026 07:39 | CPPg++14.2.0 | Success | 3,028 | ||
| Aug 10, 2026 07:37 | CPPg++14.2.0 | Success | 3,026+236.27 RP | ||
| Aug 10, 2026 07:19 | CPPg++14.2.0 | Success | 3,259+26.14 RP | ||
| Aug 10, 2026 07:18 | CPPg++10.5.0 | Success | 3,379 | ||
| Aug 10, 2026 07:11 | CPPg++14.2.0 | Success | 3,295 | ||
| Aug 10, 2026 07:08 | CPPg++14.2.0 | Success | 3,297 | ||
| Aug 10, 2026 07:06 | CPPg++14.2.0 | Success | 3,300 | ||
| Aug 10, 2026 07:03 | CPPg++14.2.0 | Success | 3,287+16.57 RP | ||
| Aug 10, 2026 06:58 | CPPg++14.2.0 | Success | 3,307 | ||
| Aug 10, 2026 06:52 | CPPg++14.2.0 | Success | 3,306 | ||
| Aug 10, 2026 06:37 | CPPg++14.2.0 | Success | 3,332 | ||
| Aug 10, 2026 06:33 | CPPg++14.2.0 | Success | 3,305+23.62 RP | ||
| Aug 10, 2026 06:18 | CPPg++14.2.0 | Success | 3,331+40.02 RP | ||
| Aug 10, 2026 05:56 | CPPg++14.2.0 | Success | 3,376+3.51 RP | ||
| Aug 10, 2026 05:46 | CPPg++14.2.0 | Success | 3,389 | ||
| Aug 10, 2026 05:28 | CPPclang++20.1.2 | Success | 3,595 | ||
| Aug 10, 2026 05:03 | CPPg++14.2.0 | Success | 3,411 | ||
| Aug 10, 2026 04:40 | CPPg++14.2.0 | Success | 3,380+2.62 RP | ||
| Aug 10, 2026 04:30 | CPPg++14.2.0 | Success | 3,444 | ||
| Aug 10, 2026 04:21 | CPPg++14.2.0 | Success | 3,385 | ||
| Aug 10, 2026 04:15 | CPPg++14.2.0 | Success | 3,383+0.87 RP | ||
| Aug 10, 2026 04:09 | CPPg++14.2.0 | Success | 3,384+6.10 RP | ||
| Aug 10, 2026 04:01 | CPPg++14.2.0 | Success | 3,391+12.99 RP | ||
| Aug 10, 2026 03:54 | CPPg++14.2.0 | Success | 3,406+13.73 RP | ||
| Aug 10, 2026 03:38 | CPPg++14.2.0 | Success | 3,422+19.51 RP | ||
| Aug 10, 2026 03:35 | CPPg++14.2.0 | Success | 3,447 | ||
| Aug 10, 2026 03:15 | CPPg++14.2.0 | Success | 3,445+44.80 RP | ||
| Aug 10, 2026 02:54 | CPPg++14.2.0 | Success | 3,503 | ||
| Aug 10, 2026 02:51 | CPPg++14.2.0 | Success | 3,500 | ||
| Aug 10, 2026 02:45 | CPPg++14.2.0 | Success | 3,514 | ||
| Aug 10, 2026 02:42 | CPPg++14.2.0 | Success | 3,499+41.06 RP | ||
| Aug 10, 2026 02:36 | CPPg++14.2.0 | Success | 3,552 | ||
| Aug 10, 2026 02:01 | CPPg++14.2.0 | Success | 3,621 |