Ranking (as of 2014-06-04): 139 out of 534
Language: C++
/* UVa 957 - Popes To build using Visual Studio 2012: cl -EHsc -O2 UVa_957_Popes.cpp */ #include <cstdio> const int p_max = 100000; int years[p_max]; int main() { int y; while (scanf("%d", &y) != EOF) { int p, i, j, max_popes = 0, max_p, max_i, max_j; scanf("%d", &p); for (i = 0; i < p; i++) scanf("%d", &years[i]); if (p == 1) { max_popes = 1; max_i = max_j = 0; } else { i = j = 0; do { if (years[j] - years[i] < y) j++; else { if ((max_p = j - i) > max_popes) { max_popes = max_p; max_i = i; max_j = j - 1; } i++; if (j < i) j = i; } } while (j < p); if ((max_p = j - i) > max_popes) { max_popes = max_p; max_i = i; max_j = j - 1; } } printf("%d %d %d\n", max_popes, years[max_i], years[max_j]); } return 0; }
No comments:
Post a Comment