map a; a[x] = a.count(x) ? y : z;

map<string,int> a;
for(int i = 0; i < name.size(); i ++) {
	string s = name[i];
	a[s] = a.count(s) ? max(a[s], score[i]) : score[i];
}

名前のリストと(負の数もありうる)スコアのリストが与えられるので名前ごとの最大スコアを計算するという趣旨のコード。
しかしこれの動作は、実際に動かしてみると、恐らく期待している動作と違った。
(a[s] = a.count(s) ? ...)の部分で、(a[s])でaが変更されている。
添字を取っただけで変更されるというmapの仕様はちょっと…だから、しっかり気にしておかないといけない