#include <string>
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
int main()
{
string winners[8] = {"France", "Germany", "Spain", "Germany", "Italy", "Germany", "Spain", "England"};
string runnersup[8] = {"Portugal", "England", "Italy", "Spain1", "Ukraine", "Spain2", "Scotland", "Turkey"};
sort(runnersup, runnersup+8);
int count = 0;
do {
bool badseeding = false;
for (int i = 0; i < 8; ++i)
{
if (winners[i].substr(0,3) == runnersup[i].substr(0,3))
{
badseeding = true;
break;
}
}
if (!badseeding) ++count;
} while (next_permutation(runnersup, runnersup+8));
cout << "different seedings: " << count << endl;
cout << fixed << setprecision(5) << "probability: " << 1.0 / count << endl;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKICBzdHJpbmcgd2lubmVyc1s4XSA9IHsiRnJhbmNlIiwgIkdlcm1hbnkiLCAiU3BhaW4iLCAiR2VybWFueSIsICJJdGFseSIsICJHZXJtYW55IiwgIlNwYWluIiwgIkVuZ2xhbmQifTsKICBzdHJpbmcgcnVubmVyc3VwWzhdID0geyJQb3J0dWdhbCIsICJFbmdsYW5kIiwgIkl0YWx5IiwgIlNwYWluMSIsICJVa3JhaW5lIiwgIlNwYWluMiIsICJTY290bGFuZCIsICJUdXJrZXkifTsKICBzb3J0KHJ1bm5lcnN1cCwgcnVubmVyc3VwKzgpOwogIGludCBjb3VudCA9IDA7CiAgZG8gewogICAgYm9vbCBiYWRzZWVkaW5nID0gZmFsc2U7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7ICsraSkKICAgIHsKICAgICAgIGlmICh3aW5uZXJzW2ldLnN1YnN0cigwLDMpID09IHJ1bm5lcnN1cFtpXS5zdWJzdHIoMCwzKSkKICAgICAgIHsKICAgICAgICAgYmFkc2VlZGluZyA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgICAgfQogICAgfQogICAgaWYgKCFiYWRzZWVkaW5nKSArK2NvdW50OwogIH0gd2hpbGUgKG5leHRfcGVybXV0YXRpb24ocnVubmVyc3VwLCBydW5uZXJzdXArOCkpOyAgCiAgY291dCA8PCAiZGlmZmVyZW50IHNlZWRpbmdzOiAiIDw8IGNvdW50IDw8IGVuZGw7CiAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oNSkgPDwgInByb2JhYmlsaXR5OiAiIDw8IDEuMCAvIGNvdW50IDw8IGVuZGw7Cn0gIA==