Let's go to play
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 773 Accepted Submission(s) : 213
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description Mr.Lin would like to hold a party and invite his friends to this party. He has n friends and each of them can come in a specific range of days of the year from ai to bi.
Mr.Lin wants to arrange a day, he can invite more friends. But he has a strange request that the number of male friends should equal to the number of femal friends.
Input Multiple sets of test data.
The first line of each input contains a single integer n (1<=n<=5000 )
Then follow n lines. Each line starts with a capital letter 'F' for female and with a capital letter 'M' for male. Then follow two integers ai and bi (1<=ai,bi<=366), providing that the i-th friend can come to the party from day ai to day bi inclusive.
Output Print the maximum number of people.
Sample Input
4M 151 307F 343 352F 117 145M 24 1286M 128 130F 128 131F 131 140F 131 141M 131 200M 140 200
Sample Output
24
AC-code:
#include<stdio.h>#include<cstring>using namespace std;int main(){int n,i,j,f[370],m[370],st,ed,max;char c;while(~scanf("%d",&n)){memset(f,0,sizeof(f));memset(m,0,sizeof(m));for(i=0;i<n;i++){getchar();scanf("%c",&c);scanf("%d%d",&st,&ed);if(st>ed)j=st,st=ed,ed=j;if(c=='F')for(j=st;j<=ed;j++)f[j]++;elsefor(j=st;j<=ed;j++)m[j]++;}max=0;for(i=1;i<=366;i++)if(f[i]>max&&m[i]>max)max=f[i]>m[i]?m[i]:f[i];printf("%d\n",2*max);}return 0;}