#include #include #include using namespace std; #define NOT -100 int N,M; int teams; map teamy; struct _foo {char s1, s2;} v[100][100]; struct _bar {int num, games, w, t, l, gs, gg, pts; char n[105]; bool operator<(const _bar& b) const { if (pts > b.pts) return true; if (pts < b.pts) return false; if (gs-gg > b.gs-b.gg) return true; if (gs-gg < b.gs-b.gg) return false; if (gs > b.gs) return true; if (gs < b.gs) return false; if (w > b.w) return true; if (w < b.w) return false; if (num > b.num) return true; return false; } } t[100]; int main(void) { while (scanf("%d", &N), N) { int mtlen=0; teamy.clear(); teams=0; for (int i=0;i(l, teams)); if (mtlen < strlen(l)) mtlen=strlen(l); memset(t+teams, 0, sizeof(_bar)); strcpy(t[teams].n, l); t[teams].num=teams; teams++; } scanf("%d", &M); for (int i=0;isecond, tn2=teamy.find(t2)->second; v[tn1][tn2].s1=s1; v[tn1][tn2].s2=s2; t[tn1].games++, t[tn2].games++; t[tn1].gs+=s1, t[tn1].gg+=s2, t[tn2].gs+=s2, t[tn2].gg+=s1; if (s1==s2) {t[tn1].t++, t[tn1].pts++, t[tn2].t++, t[tn2].pts++; } else if (s1lens[j]) lens[j]=l; } } for (int j=0;j<8;j++) switch(j) { case 0: sprintf(fmts[j], "%%%dd. ", lens[j]); break; case 1: sprintf(fmts[j], "%%-%ds ", lens[j]); break; case 2: case 3: case 4: case 5: sprintf(fmts[j], "%%%dd ", lens[j]); break; case 6: sprintf(fmts[j], "%%%ds ", lens[j]); break; case 7: sprintf(fmts[j], "%%%dd\n", lens[j]); break; } for (int i=0;i