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 | |
|---|---|---|---|---|---|
| Sep 26, 2026 18:08 | CSHARP9.0.18 | Success | 2,347+80.16 RP | ||
| Sep 26, 2026 18:06 | GOgo1.26.2 | Success | 2,350+83.44 RP | ||
| Sep 26, 2026 18:04 | ZIG0.15.1 | Success | 2,351+69.41 RP | ||
| Sep 26, 2026 18:03 | RUSTrust-1.95.0 | Success | 2,348+92.28 RP | ||
| Sep 25, 2026 21:20 | CPPg++14.2.0 | Success | 2,347+10.88 RP | ||
| Sep 24, 2026 15:17 | CPPg++14.2.0 | Success | 2,353 | ||
| Sep 24, 2026 14:55 | CPPg++14.2.0 | Success | 2,350+10.86 RP | ||
| Sep 24, 2026 14:53 | CPPg++14.2.0 | Success | 2,353+10.82 RP | ||
| Sep 24, 2026 14:50 | CPPg++14.2.0 | Success | 2,356+85.51 RP | ||
| Sep 24, 2026 14:48 | CPPg++14.2.0 | Success | 2,388+99.30 RP | ||
| Sep 24, 2026 14:44 | CPPg++14.2.0 | Success | 2,446+39.72 RP | ||
| Sep 24, 2026 14:38 | CPPg++14.2.0 | Success | 2,470+89.75 RP | ||
| Sep 24, 2026 14:33 | CPPg++14.2.0 | Success | 2,526+43.40 RP | ||
| Sep 24, 2026 14:28 | CPPg++14.2.0 | Success | 2,554+245.70 RP | ||
| Sep 24, 2026 14:19 | CPPg++14.2.0 | Success | 2,725+108.47 RP | ||
| Sep 24, 2026 14:13 | CPPg++14.2.0 | Success | 2,808+3.80 RP | ||
| Sep 24, 2026 14:11 | CPPg++14.2.0 | Success | 2,811+158.40 RP | ||
| Sep 24, 2026 14:06 | CPPg++14.2.0 | Success | 2,950 | ||
| Sep 24, 2026 13:59 | CPPg++14.2.0 | Success | 2,942+256.37 RP | ||
| Sep 24, 2026 13:25 | CPPg++14.2.0 | Success | 3,182+3'142.68 RP | ||
| Sep 24, 2026 10:47 | CPPg++14.2.0 | Error | |||
| Sep 24, 2026 10:45 | CPPg++14.2.0 | Error | |||
| Sep 23, 2026 08:58 | CPPclang++19.1.1 | Success | 39,305 | ||
| Sep 23, 2026 08:52 | CPPclang++19.1.1 | Success | 3,925+804.09 RP | ||
| Sep 23, 2026 08:44 | CPPclang++19.1.1 | Success | 50,229 | ||
| Sep 23, 2026 08:39 | CPPclang++19.1.1 | Success | 29,717 | ||
| Sep 23, 2026 08:33 | CPPclang++19.1.1 | Success | 56,983 | ||
| Sep 23, 2026 08:26 | CPPclang++19.1.1 | Success | 58,792 | ||
| Sep 23, 2026 08:02 | CPPclang++19.1.1 | Success | 50,682 | ||
| Sep 23, 2026 07:59 | CPPclang++19.1.1 | Success | 5,735+650.66 RP | ||
| Sep 23, 2026 07:55 | CPPclang++19.1.1 | Success | 19,906 | ||
| Sep 23, 2026 07:52 | CPPclang++19.1.1 | Success | 9,149+1'093.02 RP | ||
| Sep 19, 2026 13:33 | CPPg++14.2.0 | Success | 15,041 | ||
| Sep 19, 2026 13:28 | CPPg++14.2.0 | Success | 3,570 | ||
| Sep 17, 2026 14:55 | RUSTrust-1.95.0 | Success | 5,018+51.46 RP | ||
| Sep 17, 2026 14:25 | RUSTrust-1.95.0 | Success | 9,101 | ||
| Sep 17, 2026 09:34 | RUSTrust-1.95.0 | Success | 5,414 | ||
| Sep 17, 2026 09:27 | RUSTrust-1.95.0 | Success | 5,151+239.82 RP | ||
| Sep 17, 2026 08:05 | RUSTrust-1.95.0 | Success | 5,877+113.74 RP | ||
| Sep 17, 2026 07:53 | RUSTrust-1.95.0 | Success | 6,298+22.62 RP | ||
| Sep 17, 2026 07:50 | RUSTrust-1.95.0 | Success | 6,389+46.59 RP | ||
| Sep 17, 2026 07:21 | RUSTrust-1.95.0 | Success | 6,585+2.07 RP | ||
| Sep 17, 2026 04:34 | RUSTrust-1.95.0 | Success | 6,594+157.47 RP | ||
| Sep 17, 2026 04:18 | RUSTrust-1.95.0 | Success | 7,358+69.74 RP | ||
| Sep 16, 2026 15:00 | RUSTrust-1.95.0 | Success | 8,180 | ||
| Sep 16, 2026 15:00 | RUSTrust-1.95.0 | Success | 7,756+112.99 RP | ||
| Sep 16, 2026 15:00 | RUSTrust-1.95.0 | Success | 21,228 | ||
| Sep 16, 2026 14:59 | RUSTrust-1.95.0 | Error | |||
| Sep 16, 2026 14:59 | RUSTrust-1.95.0 | Error | |||
| Sep 16, 2026 10:33 | RUSTrust-1.95.0 | Success | 8,501+122.81 RP | ||
| Sep 16, 2026 04:41 | RUSTrust-1.95.0 | Success | 9,523 | ||
| Sep 16, 2026 04:21 | RUSTrust-1.95.0 | Success | 9,492+12.83 RP | ||
| Sep 16, 2026 03:58 | RUSTrust-1.95.0 | Success | 9,656 | ||
| Sep 16, 2026 02:58 | RUSTrust-1.95.0 | Success | 9,609+249.43 RP | ||
| Sep 16, 2026 02:51 | RUSTrust-1.95.0 | Success | 14,401 | ||
| Sep 16, 2026 02:42 | RUSTrust-1.95.0 | Success | 12,750 | ||
| Sep 16, 2026 02:40 | RUSTrust-1.95.0 | Success | 12,638+191.28 RP | ||
| Sep 16, 2026 02:39 | RUSTrust-1.95.0 | Error | |||
| Sep 16, 2026 02:30 | RUSTrust-1.95.0 | Error | |||
| Sep 16, 2026 00:22 | CPPg++14.2.0 | Success | 2,979 | ||
| Sep 15, 2026 22:17 | CPPg++14.2.0 | Success | 3,047 | ||
| Sep 15, 2026 18:25 | CPPg++14.2.0 | Success | 9,354 | ||
| Sep 15, 2026 18:03 | RUSTrust-1.95.0 | Success | 16,667+40.89 RP | ||
| Sep 15, 2026 18:01 | RUSTrust-1.95.0 | Success | 17,886+564.10 RP | ||
| Sep 15, 2026 17:58 | RUSTrust-1.95.0 | Error | |||
| Sep 15, 2026 15:09 | CPPg++14.2.0 | Success | 84,112 | ||
| Sep 15, 2026 15:03 | RUSTrust-1.98.1 | Success | 44,829 | ||
| Sep 15, 2026 14:46 | GOgo1.27.1 | Success | 41,529+87.54 RP | ||
| Sep 15, 2026 13:16 | CPPg++14.2.0 | Success | 5,048 | ||
| Sep 15, 2026 05:16 | CPPg++14.2.0 | Success | 85,786+5.00 RP | ||
| Sep 15, 2026 03:45 | CPPg++14.2.0 | Success | 3,356 | ||
| Sep 15, 2026 03:25 | CPPclang++20.1.2 | Success | 3,093+5.00 RP | ||
| Sep 15, 2026 02:19 | CPPclang++20.1.2 | Success | 3,039+18.30 RP | ||
| Sep 15, 2026 02:15 | CPPclang++20.1.2 | Success | 60,660 | ||
| Sep 15, 2026 02:13 | CPPclang++20.1.2 | Success | 4,195 | ||
| Sep 15, 2026 02:09 | CPPclang++20.1.2 | Success | 8,434 | ||
| Sep 15, 2026 02:01 | CPPclang++20.1.2 | Success | 3,056+19.16 RP | ||
| Sep 15, 2026 01:57 | CPPclang++20.1.2 | Success | 3,074+69.39 RP | ||
| Sep 15, 2026 01:46 | CPPclang++20.1.2 | Success | 3,808 | ||
| Sep 15, 2026 01:45 | CPPclang++20.1.2 | Success | 3,928 | ||
| Sep 15, 2026 01:40 | CPPclang++20.1.2 | Success | 3,593 | ||
| Sep 15, 2026 01:36 | CPPclang++20.1.2 | Success | 30,319 | ||
| Sep 15, 2026 01:31 | CPPclang++20.1.2 | Success | 3,658 | ||
| Sep 15, 2026 01:29 | CPPclang++20.1.2 | Success | 4,524 | ||
| Sep 15, 2026 01:27 | CPPclang++20.1.2 | Success | 3,218 | ||
| Sep 15, 2026 01:23 | CPPclang++20.1.2 | Success | 3,560 | ||
| Sep 15, 2026 01:20 | CPPclang++20.1.2 | Success | 5,042 | ||
| Sep 15, 2026 01:15 | CPPclang++20.1.2 | Success | 3,141+171.65 RP | ||
| Sep 15, 2026 01:14 | CPPclang++20.1.2 | Success | 61,801 | ||
| Sep 15, 2026 01:09 | CPPclang++20.1.2 | Success | 27,813 | ||
| Sep 15, 2026 01:06 | CPPclang++20.1.2 | Success | 29,714 | ||
| Sep 15, 2026 00:53 | CPPclang++20.1.2 | Success | 4,694 | ||
| Sep 15, 2026 00:52 | CPPclang++20.1.2 | Success | 3,320+635.06 RP | ||
| Sep 15, 2026 00:40 | CPPg++14.2.0 | Success | 19,632+5.00 RP | ||
| Sep 10, 2026 15:24 | CPPg++14.2.0 | Success | 4,472 | ||
| Sep 10, 2026 15:20 | CPPg++14.2.0 | Success | 8,291 | ||
| Sep 10, 2026 15:17 | CPPg++14.2.0 | Success | 6,053 | ||
| Sep 9, 2026 20:11 | CPPg++10.5.0 | Success | 15,625 | ||
| Sep 9, 2026 20:07 | CPPg++10.5.0 | Success | 9,285+965.21 RP | ||
| Sep 9, 2026 18:37 | CPPg++10.5.0 | Success | 89,446+111.80 RP |