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 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 | |||
| Aug 18, 2026 10:38 | CPPclang++20.1.2 | Success | 2,530+31.12 RP | ||
| Aug 18, 2026 10:35 | CPPclang++20.1.2 | Success | 2,546 | ||
| Aug 18, 2026 10:32 | CPPclang++20.1.2 | Success | 2,937 | ||
| Aug 18, 2026 10:28 | CPPclang++20.1.2 | Success | 3,147 | ||
| Aug 18, 2026 10:24 | CPPclang++20.1.2 | Success | 2,562 | ||
| Aug 18, 2026 10:20 | CPPclang++20.1.2 | Success | 2,544 | ||
| Aug 18, 2026 10:14 | CPPg++14.2.0 | Success | 2,791 | ||
| Aug 18, 2026 10:12 | CPPclang++20.1.2 | Success | 2,547 | ||
| Aug 18, 2026 10:09 | CPPclang++20.1.2 | Success | 2,542 | ||
| Aug 18, 2026 10:06 | CPPclang++20.1.2 | Success | 2,548 | ||
| Aug 18, 2026 10:03 | CPPclang++20.1.2 | Success | 2,540+30.88 RP | ||
| Aug 18, 2026 09:59 | CPPclang++20.1.2 | Success | 2,560 | ||
| Aug 18, 2026 09:56 | CPPclang++20.1.2 | Success | 2,563 | ||
| Aug 18, 2026 09:53 | CPPclang++20.1.2 | Success | 2,550+147.86 RP | ||
| Aug 18, 2026 09:50 | CPPclang++20.1.2 | Success | 2,613 | ||
| Aug 18, 2026 09:46 | CPPclang++20.1.2 | Success | 2,608 | ||
| Aug 18, 2026 09:43 | CPPclang++20.1.2 | Success | 2,609 | ||
| Aug 18, 2026 09:40 | CPPclang++20.1.2 | Success | 2,599+35.36 RP | ||
| Aug 18, 2026 09:37 | CPPclang++20.1.2 | Success | 2,706 | ||
| Aug 18, 2026 09:33 | CPPclang++20.1.2 | Success | 2,613 | ||
| Aug 18, 2026 09:30 | CPPclang++20.1.2 | Success | 2,628 | ||
| Aug 18, 2026 09:28 | CPPclang++20.1.2 | Success | 2,611+107.04 RP | ||
| Aug 18, 2026 09:25 | CPPclang++20.1.2 | Success | 2,648+142.72 RP | ||
| Aug 18, 2026 09:22 | CPPclang++20.1.2 | Success | 2,774 | ||
| Aug 18, 2026 09:18 | CPPclang++20.1.2 | Success | 2,743 | ||
| Aug 18, 2026 09:17 | GOgo1.26.2 | Success | 2,712+101.80 RP | ||
| Aug 18, 2026 09:14 | CPPclang++20.1.2 | Success | 2,791 | ||
| Aug 18, 2026 09:08 | CPPclang++20.1.2 | Success | 3,320 | ||
| Aug 18, 2026 09:00 | CPPclang++20.1.2 | Success | 3,096 | ||
| Aug 18, 2026 08:58 | CPPclang++20.1.2 | Success | 2,707 | ||
| Aug 18, 2026 08:52 | CPPclang++20.1.2 | Success | 2,699+21.90 RP | ||
| Aug 18, 2026 08:49 | CPPclang++20.1.2 | Success | 2,707+27.20 RP | ||
| Aug 18, 2026 08:45 | CPPclang++20.1.2 | Success | 4,615 | ||
| Aug 18, 2026 08:34 | CPPclang++20.1.2 | Success | 3,376 |