Ranking (as of 2015-02-27): 25 out of 308
Language: C++
/* UVa 12085 - Mobile Casanova To build using Visual Studio 2012: cl -EHsc -O2 UVa_12085_Mobile_Casanova.cpp */ #include <cstdio> #include <cstdlib> #include <cstring> int main() { for (int case_nr = 1; ; case_nr++) { int N; scanf("%d", &N); if (!N) break; printf("Case %d:\n", case_nr); const int nr_chars_max = 15; char ss[nr_chars_max + 1], es[nr_chars_max + 1], s[nr_chars_max + 1]; scanf("%s", ss); strcpy(es, ss); int sn = atoi(ss), en = sn, n; while (--N) { scanf("%s", s); n = atoi(s); if (n != en + 1) { const char *pss = ss, *pes = es; for ( ; *pss && *pss == *pes; pss++, pes++) ; if (*pes) printf("%s-%s\n", ss, pes); else printf("%s\n", ss); strcpy(ss, s); strcpy(es, s); sn = en = n; } else { strcpy(es, s); en = n; } } const char *pss = ss, *pes = es; for ( ; *pss && *pss == *pes; pss++, pes++) ; if (*pes) printf("%s-%s\n", ss, pes); else printf("%s\n", ss); putchar('\n'); } return 0; }
No comments:
Post a Comment