fork download
  1. //12148
  2. //Electricity
  3. //Misc;Ad hoc
  4. #include <iostream>
  5. using namespace std;
  6.  
  7. int M[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  8.  
  9. bool oneday(int ad, int am, int ay, int bd, int bm, int by) {
  10. if (--bd == 0) {
  11. if (--bm == 0) {
  12. --by;
  13. bm=12;
  14. }
  15.  
  16. bd = M[bm-1];
  17.  
  18. bool isleap = (by%4==0 && (by%100!=0 || by%400==0));
  19. if (bm==2 && isleap) bd=29;
  20. }
  21. return ad==bd && am==bm && ay==by;
  22.  
  23. }
  24.  
  25. int main() {
  26. int n, ad=0, am=0, ay=0, ac=0;
  27. while(cin >> n, n) {
  28. int sum = 0, count=0;
  29. while(n--) {
  30. int bd, bm, by, bc;
  31. cin >> bd >> bm >> by >> bc;
  32. if (oneday(ad, am, ay, bd, bm, by)) {
  33. sum += bc-ac; count++;
  34. }
  35. ad = bd; am = bm; ay = by; ac = bc;
  36. }
  37. cout << count << " " << sum << endl;
  38. }
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 0s 5320KB
stdin
5
9 9 1979 440
29 10 1979 458
30 10 1979 470
1 11 1979 480
2 11 1979 483
3
5 5 2000 6780
6 5 2001 7795
7 5 2002 8201
8
28 2 1978 112
1 3 1978 113
28 2 1980 220
1 3 1980 221
5 11 1980 500
14 11 2008 600
15 11 2008 790
16 12 2008 810
0
stdout
2 15
0 0
2 191