codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> using namespace std; #define re(i, n) for (int i=0; i<n; i++) #define re1(i, n) for (int i=1; i<=n; i++) #define re2(i, l, r) for (int i=l; i<r; i++) #define re3(i, l, r) for (int i=l; i<=r; i++) #define rre(i, n) for (int i=n-1; i>=0; i--) #define rre1(i, n) for (int i=n; i>0; i--) #define rre2(i, r, l) for (int i=r-1; i>=l; i--) #define rre3(i, r, l) for (int i=r; i>=l; i--) #define ll long long const int MAXN = 86400, INF = ~0U >> 2; ll T0[MAXN + 1], T1[MAXN + 1]; void opr0(int No, ll c) { for (int i=No; i>0; i-=i&(-i)) T0[i] += c; for (int i=No; i<=MAXN; i+=i&(-i)) T1[i] += c * No; } ll opr1(int No) { ll sum = 0; for (int i=No+1; i<=MAXN; i+=i&(-i)) sum += T0[i] * No; for (int i=No; i>0; i-=i&(-i)) sum += T1[i]; return sum; } int main() { int n, h0, m0, s0, h1, m1, s1, l, r; scanf("%d", &n); ll res; re(i, n) { scanf("%d:%d:%d - %d:%d:%d", &h0, &m0, &s0, &h1, &m1, &s1); l = h0 * 3600 + m0 * 60 + s0 + 1; r = h1 * 3600 + m1 * 60 + s1 + 1; if (l - 1) opr0(l - 1, -1); opr0(r, 1); if (l > r) opr0(MAXN, 1); } scanf("%d", &n); re(i, n) { scanf("%d:%d:%d - %d:%d:%d", &h0, &m0, &s0, &h1, &m1, &s1); l = h0 * 3600 + m0 * 60 + s0 + 1; r = h1 * 3600 + m1 * 60 + s1 + 1; res = opr1(r); if (l - 1) res -= opr1(l - 1); if (l > r) res += opr1(MAXN); printf("%.10lf\n", (double)res / (l <= r ? r - l + 1 : r - l + 1 + MAXN)); } }
Private
[
?
]
Run code
Submit