-
现有一份网络日志,里面记录着若干用户大约60年间的上网上线时间和下线时间。时间以秒为单位顺序计时。假设网络管理规定到了每天零时,如果还有在线用户,则进行一次强制下线处理。也就是说,用户的上线下线时间不会跨越两个日期。请编程统计网络日志中同时(1秒内)在线的最大人数。
-
输入格式
共n+1行。 第1行包含一个整数n(1 ≤ n ≤ 1,000),表示一共有n条日志记录。 接下来的n行,每行有2个数字A和B,表示一条日志记录,这条日志表明该用户[A,B)时间内在线。 其中A和B单位是秒,并且都是从00:00开始计数的,例如[10,100)表示该用户在10秒到100秒这 段时间内在线(含10秒,不含100秒)(0 ≤ A < B < 60 * 60 * 24 * 30 * 12 * 60, 大约60年内)。
-
输出格式
#include<stdio.h> int count(long log_t[][2], const int size, int t) { int sum = 0; for(int i = 0; i < size; i++) { if ((log_t[i][0] <= t) && (t < log_t[i][1])) sum +=1; } return sum; } int main() { long a[1000][2]={{0,0}}; int n; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%ld%ld", &a[i][0], &a[i][1]); } int maxOnline = 0; // for (int i = 0; i < n; i++) { int c1 = count(a, n, a[i][0]); int c2 = count(a, n, a[i][1]); maxOnline = (maxOnline > c1) ? maxOnline : c1; maxOnline = (maxOnline > c2) ? maxOnline : c2; } printf("%d\n", maxOnline); return 0; }
共1行,包含一个整数,表示同时在线的最大人数。
同时在线人数问题
最新推荐文章于 2024-07-19 22:36:19 发布