首页 > 代码库 > D FFF团的怒火
D FFF团的怒火
Time Limit:1000MS Memory Limit:65535K
题型: 编程题 语言: 无限制
描述
在信软学院,男女比例失衡已经是习以为常的事情。在这样的一个学院,诞生了一个神秘的组织,FFF团。 O O O /F\/F\/F / \/ \/ 他们的任务是将一切不是真爱的爱情扼杀在摇篮中。对于某些信软学院的学生,每天都只有一些时间是空闲的,其他时间都只能默默地打代码。在这段空闲的时间里,所有男生都会去寻找一位空闲的女生,希望能与其进行一次美妙的约会。然而FFF团的团长——小邪早已看穿一切。为了防止FFF团团员做出过激行为,小邪决定对所有有着同一段空闲时间的异性进行监控。现在,小邪想知道,这样的异性有多少对。但是如果小邪现在不对团员进行监控,将会发生严重的后果,于是,统计的任务就交了给你。出题人:K·小邪
输入格式
第一行是两个整数n,m(0 <= n,m <= 100),分别代表男生的数量和女生的数量接下来输入n个男生的数据,对于每个男生有一组数据每组数据的第一行为一个整数t( 0 <= t <= 10 ),代表该男生拥有的空闲时间段数量接下来为t行每行的格式为XX:XX-XX:XX (00:00 <= XX:XX <= 23:59)代表其在XX:XX至XX:XX的时间段有空闲时间,但是可能跨越一天接下来m个女生的数据,输入格式同男生
输出格式
输出一个整数,代表有可能见面的男女的对数
输入样例
(Sample #XX:不是输入的一部分)Sample #1:1 1123:59-00:01108:00-19:00Sample #2:1 2219:30-19:3300:00-08:00107:30-09:00119:30-19:33
输出样例
Sample #1:0Sample #2:2
Hint
注意端点相交也算是有可能见面的比如08:00-09:00是可能与09:00-10:00见面的并且对于同一个人输入的区间可能有重叠
#include<stdio.h>#include<string.h>int boy[1050][4], girl[1050][4];int go(int, int );int main(){ int i, j, tb, tg, temp, temp1, temp2; int t1, t2, n, m, count = 0; int k1, k2, k3, k4; scanf("%d%d", &n, &m); memset(boy, 0, sizeof(boy)); memset(girl, 0, sizeof(girl)); for (i = 0; i < n; i++) { scanf("%d", &tb); boy[10 * i][0] = tb; for (j = 10 * i; j < 10 * i + tb; j++) { scanf("%d:%d-%d:%d", &k1, &k2, &k3, &k4); temp1 = k1 * 100 + k2; temp2 = k3 * 100 + k4; boy[j][1] = temp1; boy[j][2] = temp2; } } for (i = 0; i < m; i++) { scanf("%d", &tg); girl[10 * i][0] = tg; for (j = 10 * i; j < 10 * i + tg; j++) { scanf("%d:%d-%d:%d", &k1, &k2, &k3, &k4); temp1 = k1 * 100 + k2; temp2 = k3 * 100 + k4; girl[j][1] = temp1; girl[j][2] = temp2; } } for (i = 0; i < n; i++) for (j = 0; j < m; j++) {temp = count; for (t1 = 10 * i; t1 < 10 * i + boy[10 * i][0]; t1++) { for (t2 = 10 * j; t2 < 10 * j + girl[10 * j][0]; t2++) if (go(t1, t2)) { count++; break; } if (count > temp) break; } } printf("%d", count); return 0;}int go(int t1, int t2){ int k1, k2, k3, k4; k1 = boy[t1][1]; k2 = boy[t1][2]; k3 = girl[t2][1]; k4 = girl[t2][2]; if (k2 >= k1 && k4 >= k3) { if (k1>k4||k3>k2) return 0; else return 1; } else if (k2 < k1 && k4 < k3) return 1; else { if (k1 > k2) { if (k3 > k2 && k4 < k1) return 0; else return 1; } else { if (k1 > k4 && k2 < k3) return 0; else return 1; } }}
D FFF团的怒火
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。