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 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 | ||
| Sep 4, 2026 23:18 | CPPclang++20.1.2 | Success | 2,372+3.56 RP | ||
| Sep 4, 2026 16:04 | CPPclang++20.1.2 | Success | 2,377 | ||
| Sep 4, 2026 10:19 | CPPclang++20.1.2 | Success | 2,377 | ||
| Sep 4, 2026 10:12 | CPPclang++20.1.2 | Success | 2,380 | ||
| Sep 4, 2026 09:30 | CPPclang++20.1.2 | Success | 2,378 | ||
| Sep 4, 2026 09:26 | CPPclang++20.1.2 | Success | 2,373+14.18 RP | ||
| Sep 4, 2026 08:44 | CPPclang++20.1.2 | Success | 2,405 | ||
| Sep 4, 2026 07:43 | CPPclang++20.1.2 | Success | 2,696 | ||
| Sep 4, 2026 07:07 | CPPclang++20.1.2 | Success | 2,377+10.60 RP | ||
| Aug 31, 2026 06:25 | CSHARP10.0.11 | Success | 65,645+5.00 RP | ||
| Aug 31, 2026 05:17 | CSHARP9.0.19 | Error | |||
| Aug 31, 2026 02:54 | CPPg++14.2.0 | Success | 2,798+5.00 RP | ||
| Aug 30, 2026 22:38 | CPPclang++20.1.2 | Success | 2,465 | ||
| Aug 30, 2026 22:32 | CPPclang++20.1.2 | Success | 2,609 | ||
| Aug 30, 2026 22:10 | CPPclang++20.1.2 | Success | 2,771 | ||
| Aug 30, 2026 21:46 | CPPclang++20.1.2 | Success | 2,393 | ||
| Aug 30, 2026 20:35 | CPPclang++20.1.2 | Success | 2,381 | ||
| Aug 30, 2026 20:16 | CPPclang++20.1.2 | Success | 2,389 | ||
| Aug 30, 2026 20:01 | CPPclang++20.1.2 | Success | 2,422 | ||
| Aug 24, 2026 06:14 | CSHARP10.0.11 | Success | 65,250+4.64 RP | ||
| Aug 24, 2026 05:53 | CPPg++10.5.0 | Success | 84,137 | ||
| Aug 24, 2026 05:34 | CSHARP9.0.15 | Success | 67,285+148.62 RP | ||
| Aug 23, 2026 15:29 | CPPg++14.2.0 | Success | 4,207+1'540.24 RP | ||
| Aug 23, 2026 15:13 | CPPg++14.2.0 | Success | 11,951+719.91 RP | ||
| Aug 21, 2026 19:26 | CPPg++14.2.0 | Success | 85,588+116.84 RP | ||
| Aug 18, 2026 14:59 | CPPclang++20.1.2 | Success | 2,542 | ||
| Aug 18, 2026 14:43 | CPPclang++20.1.2 | Success | 2,381 | ||
| Aug 18, 2026 14:32 | CPPclang++20.1.2 | Success | 2,386 | ||
| Aug 18, 2026 14:10 | CPPclang++20.1.2 | Success | 2,417 | ||
| Aug 18, 2026 14:05 | CPPclang++20.1.2 | Success | 2,419 | ||
| Aug 18, 2026 14:01 | CPPclang++20.1.2 | Success | 2,380+31.66 RP | ||
| Aug 18, 2026 13:47 | CPPclang++20.1.2 | Success | 2,397 | ||
| Aug 18, 2026 13:42 | CPPclang++20.1.2 | Success | 2,405 | ||
| Aug 18, 2026 13:35 | CPPclang++20.1.2 | Success | 2,432 | ||
| Aug 18, 2026 13:31 | CPPclang++20.1.2 | Success | 2,392 | ||
| Aug 18, 2026 13:31 | RUSTrust-1.95.0 | Success | 2,400+525.01 RP | ||
| Aug 18, 2026 13:28 | ZIG0.16.0 | Success | 2,390+560.91 RP | ||
| Aug 18, 2026 13:24 | CPPclang++20.1.2 | Success | 2,487 | ||
| Aug 18, 2026 13:20 | CSHARP10.0.7 | Success | 2,392+609.17 RP | ||
| Aug 18, 2026 13:17 | GOgo1.26.2 | Success | 2,397+484.57 RP | ||
| Aug 18, 2026 13:12 | CPPclang++20.1.2 | Success | 2,399 | ||
| Aug 18, 2026 13:09 | CPPclang++20.1.2 | Success | 2,394 | ||
| Aug 18, 2026 12:57 | CPPclang++20.1.2 | Success | 2,389+45.30 RP | ||
| Aug 18, 2026 12:53 | CPPclang++20.1.2 | Success | 2,402+34.52 RP | ||
| Aug 18, 2026 12:47 | CPPclang++20.1.2 | Success | 2,482 | ||
| Aug 18, 2026 12:39 | CPPclang++20.1.2 | Success | 2,738 | ||
| Aug 18, 2026 12:28 | CPPclang++20.1.2 | Success | 2,412+88.42 RP | ||
| Aug 18, 2026 12:23 | CPPclang++20.1.2 | Success | 2,448 | ||
| Aug 18, 2026 12:19 | CPPclang++20.1.2 | Success | 3,669 | ||
| Aug 18, 2026 12:02 | CPPclang++20.1.2 | Success | 2,980 | ||
| Aug 18, 2026 11:56 | CPPclang++20.1.2 | Success | 2,697 | ||
| Aug 18, 2026 11:51 | CPPclang++20.1.2 | Success | 2,485 | ||
| Aug 18, 2026 11:44 | CPPclang++20.1.2 | Success | 2,438+3.36 RP | ||
| Aug 18, 2026 11:40 | CPPclang++20.1.2 | Success | 2,942 | ||
| Aug 18, 2026 11:38 | CPPclang++20.1.2 | Success | 2,439 | ||
| Aug 18, 2026 11:34 | CPPclang++20.1.2 | Success | 2,439+6.72 RP | ||
| Aug 18, 2026 11:30 | CPPclang++20.1.2 | Success | 2,444 | ||
| Aug 18, 2026 11:27 | CPPclang++20.1.2 | Success | 2,441+66.58 RP | ||
| Aug 18, 2026 11:25 | CPPclang++20.1.2 | Success | 2,500 | ||
| Aug 18, 2026 11:20 | CPPclang++20.1.2 | Success | 2,604 | ||
| Aug 18, 2026 11:12 | CPPclang++20.1.2 | Success | 2,732 | ||
| Aug 18, 2026 11:09 | CPPclang++20.1.2 | Success | 2,469 | ||
| Aug 18, 2026 11:05 | CPPclang++20.1.2 | Success | 2,473 | ||
| Aug 18, 2026 10:54 | CPPclang++20.1.2 | Success | 2,461+218.52 RP | ||
| Aug 18, 2026 10:52 | CPPclang++20.1.2 | Success | 2,529+3.12 RP | ||
| Aug 18, 2026 10:42 | CPPclang++20.1.2 | Error |