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 21, 2026 04:48 | CPPg++10.5.0 | Success | 85,810+121.54 RP | ||
| Oct 19, 2026 09:36 | CPPg++14.2.0 | Success | 2,340 | ||
| Oct 19, 2026 09:34 | CPPg++14.2.0 | Success | 2,344 | ||
| Oct 19, 2026 09:31 | CPPg++14.2.0 | Success | 2,354 | ||
| Oct 19, 2026 09:29 | CPPg++14.2.0 | Success | 2,345 | ||
| Oct 19, 2026 09:26 | CPPg++14.2.0 | Success | 2,380 | ||
| Oct 19, 2026 09:23 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 09:23 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 09:20 | CPPg++14.2.0 | Success | 2,381 | ||
| Oct 19, 2026 09:15 | CPPg++14.2.0 | Success | 2,391 | ||
| Oct 19, 2026 08:52 | CPPg++14.2.0 | Success | 2,308+176.00 RP | ||
| Oct 19, 2026 08:49 | CPPg++14.2.0 | Success | 2,375+118.87 RP | ||
| Oct 19, 2026 08:47 | CPPg++14.2.0 | Success | 2,458 | ||
| Oct 19, 2026 08:45 | CPPg++14.2.0 | Success | 2,598 | ||
| Oct 19, 2026 08:42 | CPPg++14.2.0 | Success | 2,455 | ||
| Oct 19, 2026 08:40 | CPPg++14.2.0 | Success | 2,574 | ||
| Oct 19, 2026 08:38 | CPPg++14.2.0 | Success | 2,536 | ||
| Oct 19, 2026 08:35 | CPPg++14.2.0 | Success | 2,553 | ||
| Oct 19, 2026 08:31 | CPPg++14.2.0 | Success | 2,508 | ||
| Oct 19, 2026 08:29 | CPPg++14.2.0 | Success | 2,444+10.02 RP | ||
| Oct 19, 2026 08:26 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 08:19 | CPPg++14.2.0 | Success | 2,454 | ||
| Oct 19, 2026 08:17 | CPPg++14.2.0 | Success | 2,450 | ||
| Oct 19, 2026 08:16 | CPPg++14.2.0 | Success | 2,454 | ||
| Oct 19, 2026 08:14 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 08:12 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 08:09 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 08:06 | CPPg++14.2.0 | Success | 2,552 | ||
| Oct 19, 2026 08:05 | CPPg++14.2.0 | Success | 2,931 | ||
| Oct 19, 2026 08:00 | CPPg++14.2.0 | Success | 2,536 | ||
| Oct 19, 2026 07:59 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 07:58 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 07:56 | CPPg++14.2.0 | Success | 2,468 | ||
| Oct 19, 2026 07:49 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 07:46 | CPPg++14.2.0 | Success | 2,619 | ||
| Oct 19, 2026 07:44 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 07:39 | CPPg++14.2.0 | Success | 2,459 | ||
| Oct 19, 2026 07:36 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 07:32 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 07:28 | CPPg++14.2.0 | Success | 2,453 | ||
| Oct 19, 2026 07:21 | CPPg++14.2.0 | Success | 2,451 | ||
| Oct 19, 2026 07:17 | CPPg++14.2.0 | Success | 2,457 | ||
| Oct 19, 2026 07:15 | CPPg++14.2.0 | Success | 2,548 | ||
| Oct 19, 2026 07:11 | CPPg++14.2.0 | Success | 2,586 | ||
| Oct 19, 2026 07:07 | CPPg++14.2.0 | Success | 2,504 | ||
| Oct 19, 2026 07:02 | CPPg++14.2.0 | Success | 2,557 | ||
| Oct 19, 2026 07:00 | CPPg++14.2.0 | Success | 2,456 | ||
| Oct 19, 2026 06:58 | CPPg++14.2.0 | Success | 2,450+19.89 RP | ||
| Oct 19, 2026 06:56 | CPPg++14.2.0 | Success | 2,476 | ||
| Oct 19, 2026 06:55 | GOgo1.26.2 | Error | |||
| Oct 19, 2026 06:54 | CPPg++14.2.0 | Success | 2,511 | ||
| Oct 19, 2026 06:52 | CPPg++14.2.0 | Success | 2,462+4.94 RP | ||
| Oct 19, 2026 06:50 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 06:49 | GOgo1.26.2 | Error | |||
| Oct 19, 2026 06:49 | CPPg++14.2.0 | Error | |||
| Oct 19, 2026 06:45 | CPPg++14.2.0 | Success | 2,506 | ||
| Oct 19, 2026 06:43 | CPPg++14.2.0 | Success | 2,742 | ||
| Oct 19, 2026 06:42 | CPPg++14.2.0 | Success | 2,465+1.65 RP | ||
| Oct 19, 2026 06:40 | CPPg++14.2.0 | Success | 2,466+35.86 RP | ||
| Oct 19, 2026 06:38 | CPPg++14.2.0 | Success | 2,492 | ||
| Oct 19, 2026 06:36 | CPPg++14.2.0 | Success | 2,510 | ||
| Oct 19, 2026 06:34 | GOgo1.26.2 | Error | |||
| Oct 19, 2026 06:34 | CPPg++14.2.0 | Success | 2,504 | ||
| Oct 19, 2026 06:31 | CPPg++14.2.0 | Success | 2,652 | ||
| Oct 19, 2026 06:30 | GOgo1.26.2 | Error | |||
| Oct 19, 2026 06:29 | CPPg++14.2.0 | Success | 2,488+86.93 RP | ||
| Oct 19, 2026 06:24 | GOgo1.26.2 | Error | |||
| Oct 19, 2026 06:23 | CPPg++14.2.0 | Success | 2,543+457.73 RP | ||
| Oct 19, 2026 06:19 | CPPg++14.2.0 | Success | 2,878+4.82 RP | ||
| Oct 19, 2026 06:16 | CPPg++14.2.0 | Success | 2,882+3.61 RP | ||
| Oct 19, 2026 06:13 | CPPg++14.2.0 | Success | 3,073 | ||
| Oct 19, 2026 06:11 | CPPg++14.2.0 | Success | 2,924 | ||
| Oct 19, 2026 06:07 | CPPg++14.2.0 | Success | 2,885+53.24 RP | ||
| Oct 19, 2026 06:04 | CPPg++14.2.0 | Success | 2,978 | ||
| Oct 19, 2026 06:02 | CPPg++14.2.0 | Success | 3,132 | ||
| Oct 19, 2026 06:00 | CPPg++14.2.0 | Success | 3,115 | ||
| Oct 19, 2026 05:59 | CPPg++14.2.0 | Success | 3,270 | ||
| Oct 19, 2026 05:57 | CPPg++14.2.0 | Success | 3,277 | ||
| Oct 19, 2026 05:52 | CPPg++14.2.0 | Success | 2,981 | ||
| Oct 19, 2026 05:49 | CPPg++14.2.0 | Success | 2,967 | ||
| Oct 19, 2026 05:47 | CPPg++14.2.0 | Success | 2,933 | ||
| Oct 19, 2026 05:44 | CPPg++14.2.0 | Success | 3,427 | ||
| Oct 19, 2026 05:42 | CPPg++14.2.0 | Success | 3,163 | ||
| Oct 19, 2026 05:40 | CPPg++14.2.0 | Success | 3,358 | ||
| Oct 19, 2026 05:39 | CPPg++14.2.0 | Success | 3,646 | ||
| Oct 19, 2026 05:35 | CPPg++14.2.0 | Success | 3,281 | ||
| Oct 19, 2026 05:34 | CPPg++14.2.0 | Success | 3,120 | ||
| Oct 19, 2026 05:30 | CPPg++14.2.0 | Success | 2,942 | ||
| Oct 19, 2026 05:29 | CPPg++14.2.0 | Success | 2,930+3.49 RP | ||
| Oct 19, 2026 05:27 | CPPg++14.2.0 | Success | 2,934 | ||
| Oct 19, 2026 05:22 | CPPg++14.2.0 | Success | 3,869 | ||
| Oct 19, 2026 05:18 | CPPg++14.2.0 | Success | 2,960 | ||
| Oct 19, 2026 05:16 | CPPg++14.2.0 | Success | 2,960 | ||
| Oct 19, 2026 05:15 | CPPg++14.2.0 | Success | 2,945 | ||
| Oct 19, 2026 05:11 | CPPg++14.2.0 | Success | 2,955 | ||
| Oct 19, 2026 05:06 | CPPg++14.2.0 | Success | 2,933+4.64 RP | ||
| Oct 19, 2026 04:59 | CPPg++14.2.0 | Success | 2,972 | ||
| Oct 19, 2026 04:49 | CPPg++14.2.0 | Success | 2,937+33.29 RP | ||
| Oct 19, 2026 04:40 | CPPg++14.2.0 | Success | 3,113 | ||
| Oct 19, 2026 04:38 | CPPg++14.2.0 | Success | 3,346 |