Submission details
Task:Aristocracy
Sender:Works on my Machine
Submission time:2025-11-08 16:30:03 +0200
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#20.00 sdetails
#30.00 sdetails
#40.00 sdetails
#50.00 sdetails
#6ACCEPTED0.05 sdetails
#70.05 sdetails
#80.07 sdetails
#90.06 sdetails
#100.12 sdetails
#11ACCEPTED0.06 sdetails
#120.07 sdetails
#130.08 sdetails
#140.08 sdetails
#150.14 sdetails
#16ACCEPTED0.16 sdetails
#17ACCEPTED0.03 sdetails

Compiler report

input/code.cpp: In function 'long long int multinomial(std::vector<int>&)':
input/code.cpp:14:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |   for(int i = 1; i<v.size(); ++i){
      |                  ~^~~~~~~~~

Code

#include <iostream>
#include <string>
#include <unordered_map>
#include <vector>


const long long MOD = 1e9 + 7;

 
long long multinomial(std::vector<int>& v){
  long long c = 1;
  long long m = v.empty() ? 1 : v[0];
  for(int i = 1; i<v.size(); ++i){
    for(int j = 0; j<v[i]; ++j){
      m = (m + 1) % MOD;
      c = ((c * m ) % MOD) / (j+1) ;
      c = c % MOD;
    }
  }

  return c;
}

int main(){
  int n;
  std::cin >> n;
  std::unordered_map<std::string, long long> numbers;
  std::vector<std::string> names;

  for (int i = 0; i<n; ++i){
    std::string name;
    long long num;
    std::cin >> name >> num;
    if (!numbers.count(name)) {
      names.push_back(name);
      numbers[name] = 0;
    }
    numbers[name]++;
  }

  std::vector<int> values;
  for (std::string name: names){
    values.push_back(numbers[name]);
  }


  std::cout << multinomial(values) % MOD << "\n";




}

Test details

Test 1

Verdict: ACCEPTED

input
4
Uolevi 1
Maija 3
Uolevi 2
Maija 2

correct output
6

user output
6

Test 2

Verdict:

input
31
Eric 9
Charles 7
Sverker 2
Eric 10
...

correct output
541197645

user output
508058242

Feedback: Incorrect character on line 1 col 2: expected "541197645", got "508058242"

Test 3

Verdict:

input
19
Ivan 4
Feodor 1
Feodor 2
Dmitry 1
...

correct output
939302456

user output
439302395

Feedback: Incorrect character on line 1 col 1: expected "939302456", got "439302395"

Test 4

Verdict:

input
41
William 1
William 2
Henry 1
Stephen 1
...

correct output
520019025

user output
16880010

Feedback: Incorrect character on line 1 col 1: expected "520019025", got "16880010"

Test 5

Verdict:

input
216
Peter 1
Linus 1
Cletus 1
Clement 1
...

correct output
200519221

user output
139067017

Feedback: Incorrect character on line 1 col 1: expected "200519221", got "139067017"

Test 6

Verdict: ACCEPTED

input
100000
A 1
A 2
A 3
A 4
...

correct output
1

user output
1

Test 7

Verdict:

input
100000
E 1
Y 1
Y 2
M 1
...

correct output
504127783

user output
16235

Feedback: Incorrect character on line 1 col 1: expected "504127783", got "16235"

Test 8

Verdict:

input
100000
Maija 1
Uolevi 1
Maija 2
Maija 3
...

correct output
328286172

user output
15270

Feedback: Incorrect character on line 1 col 1: expected "328286172", got "15270"

Test 9

Verdict:

input
100000
Maijx 1
Maije 1
Maijw 1
Maijp 1
...

correct output
178134668

user output
201667

Feedback: Incorrect character on line 1 col 1: expected "178134668", got "201667"

Test 10

Verdict:

input
100000
Bwvfj 1
Zmcpk 1
Jnmhz 1
Vcqtv 1
...

correct output
804665298

user output
590537557

Feedback: Incorrect character on line 1 col 1: expected "804665298", got "590537557"

Test 11

Verdict: ACCEPTED

input
100000
A 947476077
A 209406366
A 64254608
A 370109404
...

correct output
1

user output
1

Test 12

Verdict:

input
100000
F 779918796
L 978222897
L 977989517
O 263870841
...

correct output
903086284

user output
236165

Feedback: Incorrect character on line 1 col 1: expected "903086284", got "236165"

Test 13

Verdict:

input
100000
Maija 968540665
Uolevi 869194539
Uolevi 530855688
Maija 232728327
...

correct output
271775549

user output
0

Feedback: Incorrect character on line 1 col 1: expected "271775549", got "0"

Test 14

Verdict:

input
100000
Uolevj 501874596
Uolevm 133829533
Uolevd 13322011
Uolevw 418508186
...

correct output
529945879

user output
42175

Feedback: Incorrect character on line 1 col 1: expected "529945879", got "42175"

Test 15

Verdict:

input
100000
Hamql 748803883
Mpfaf 709208011
Gegcd 685359815
Yvain 890816531
...

correct output
166192905

user output
726629538

Feedback: Incorrect character on line 1 col 1: expected "166192905", got "726629538"

Test 16

Verdict: ACCEPTED

input
100000
Barmfsykcm 225712723
Xmvycwxssc 893904167
Wpetqrazdz 316367309
Eatxvkieif 111661228
...

correct output
457992974

user output
457992974

Test 17

Verdict: ACCEPTED

input
1
Ltwgcnsajxaxhacysdjhrpzymwxaen...

correct output
1

user output
1