using System;
using System.Linq;
public class Test
{
static double IntersectionSize(string a, string b) {
var wordsA = a.Split(null);
var wordsB = b.Split(null);
var common = wordsA.Intersect(wordsB);
double res = common.Sum(w => w.Length); // Total length of common words
return 2 * res / (wordsA.Distinct().Sum(w => w.Length) + wordsB.Distinct().Sum(w => w.Length));
}
public static void Main()
{
var res = IntersectionSize(
"Economie - Un oeil sur les medias"
, "Un oeil sur les medias - Economie du mond"
);
Console.WriteLine(res);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCQpzdGF0aWMgZG91YmxlIEludGVyc2VjdGlvblNpemUoc3RyaW5nIGEsIHN0cmluZyBiKSB7CiAgICB2YXIgd29yZHNBID0gYS5TcGxpdChudWxsKTsKICAgIHZhciB3b3Jkc0IgPSBiLlNwbGl0KG51bGwpOwogICAgdmFyIGNvbW1vbiA9IHdvcmRzQS5JbnRlcnNlY3Qod29yZHNCKTsKICAgIGRvdWJsZSByZXMgPSBjb21tb24uU3VtKHcgPT4gdy5MZW5ndGgpOyAvLyBUb3RhbCBsZW5ndGggb2YgY29tbW9uIHdvcmRzCiAgICByZXR1cm4gMiAqIHJlcyAvICh3b3Jkc0EuRGlzdGluY3QoKS5TdW0odyA9PiB3Lkxlbmd0aCkgKyB3b3Jkc0IuRGlzdGluY3QoKS5TdW0odyA9PiB3Lkxlbmd0aCkpOwp9CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CiAgICB2YXIgcmVzID0gSW50ZXJzZWN0aW9uU2l6ZSgKICAgIAkiRWNvbm9taWUgLSBVbiBvZWlsIHN1ciBsZXMgbWVkaWFzIgogICAgLCAgICJVbiBvZWlsIHN1ciBsZXMgbWVkaWFzIC0gRWNvbm9taWUgZHUgbW9uZCIKICAgICk7CiAgICBDb25zb2xlLldyaXRlTGluZShyZXMpOwp9Cn0=