[ create a new paste ] login | about

Link: http://codepad.org/i50ZOWLh    [ raw code | output | fork ]

C++, pasted on Apr 1:
#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));

	}

}


Output:
1
2
Line 31: error: ISO C++ does not support 'long long'
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: