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 2, 2026 06:30 | CPPclang++20.1.2 | Success | 26,600 | ||
| Oct 2, 2026 05:38 | CPPclang++20.1.2 | Error | |||
| Oct 2, 2026 05:23 | CPPclang++20.1.2 | Success | 36,133 | ||
| Oct 2, 2026 05:14 | CPPclang++20.1.2 | Success | 47,182 | ||
| Oct 2, 2026 05:11 | CPPclang++20.1.2 | Success | 47,295 | ||
| Oct 2, 2026 05:08 | CPPclang++20.1.2 | Success | 36,168 | ||
| Oct 2, 2026 05:07 | CPPclang++20.1.2 | Success | 60,796 | ||
| Oct 2, 2026 04:59 | CPPg++14.2.0 | Success | 3,828 | ||
| Oct 2, 2026 04:57 | CPPclang++20.1.2 | Success | 47,212 | ||
| Oct 2, 2026 04:54 | CPPclang++20.1.2 | Success | 47,318 | ||
| Oct 2, 2026 04:35 | CPPclang++20.1.2 | Success | 53,475 | ||
| Oct 2, 2026 04:25 | CPPclang++20.1.2 | Success | 48,736 | ||
| Oct 2, 2026 04:08 | CPPclang++20.1.2 | Success | 65,203 | ||
| Oct 2, 2026 04:05 | CPPclang++20.1.2 | Success | 52,075 | ||
| Oct 2, 2026 03:55 | CPPclang++20.1.2 | Success | 62,590 | ||
| Oct 2, 2026 01:39 | CPPclang++20.1.2 | Success | 54,614 | ||
| Oct 2, 2026 00:43 | CPPclang++20.1.2 | Success | 52,401 | ||
| Oct 1, 2026 23:43 | CPPclang++20.1.2 | Success | 56,635 | ||
| Oct 1, 2026 23:39 | CPPclang++20.1.2 | Success | 51,911 | ||
| Oct 1, 2026 23:23 | CPPclang++20.1.2 | Success | 2,940+83.51 RP | ||
| Oct 1, 2026 23:17 | CPPclang++20.1.2 | Success | 48,830 | ||
| Oct 1, 2026 23:12 | CPPclang++20.1.2 | Success | 66,643 | ||
| Oct 1, 2026 22:18 | CPPclang++20.1.2 | Success | 58,408 | ||
| Oct 1, 2026 22:11 | CPPclang++20.1.2 | Success | 74,922 | ||
| Oct 1, 2026 21:34 | CPPclang++20.1.2 | Success | 54,450 | ||
| Oct 1, 2026 20:54 | CPPclang++20.1.2 | Success | 58,014 | ||
| Oct 1, 2026 20:38 | CPPg++14.2.0 | Success | 3,127 | ||
| Oct 1, 2026 20:38 | CPPclang++20.1.2 | Success | 3,014+27.29 RP | ||
| Oct 1, 2026 20:33 | CPPg++14.2.0 | Success | 3,298 | ||
| Oct 1, 2026 20:33 | CPPclang++20.1.2 | Success | 3,219 | ||
| Oct 1, 2026 20:21 | CPPclang++20.1.2 | Success | 3,052 | ||
| Oct 1, 2026 19:52 | CPPclang++20.1.2 | Success | 3,107 | ||
| Oct 1, 2026 19:48 | CPPclang++20.1.2 | Success | 79,053 | ||
| Oct 1, 2026 19:25 | CPPclang++20.1.2 | Success | 109,417 | ||
| 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 |