4143: [AMPPZ2014]The Lawyer
Time Limit: 10 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 462 Solved: 257
[Submit][Status][Discuss]
Description
Byteasar要制订m天的会议计划,一共有n场会议,第i场会议开始于第d[i]天的第a[i]秒,结束于第d[i]天的第b[i]秒。
对于每一天,请找出这一天的两场会议i,j,使得它们不冲突,即不存在一个数k同时满足a[i]<=k<=b[i]以及a[j]<=k<=b[j]。
Input
第一行包含两个正整数n,m(2<=n<=500000,1<=m<=20),表示会议的场数和天数。
接下来n行,每行包含三个正整数a[i],b[i],d[i](1<=a[i]<b[i]<=80000000,1<=d[i]<=m),描述一场会议。
Output
输出m行。第i行输出第i天的答案,如果无解,输出NIE,否则输出TAK,然后输出这一天参加的两场会议的编号,
如有多组解,输出任意一组。
Sample Input
6 3
3 5 1
2 4 2
1 8 1
6 7 3
3 5 2
7 12 1
3 5 1
2 4 2
1 8 1
6 7 3
3 5 2
7 12 1
Sample Output
TAK 1 6
NIE
NIE
NIE
NIE
题解
记录下每天最早的结束时间和最晚的开始时间,没了
1 /************************************************************** 2 Problem: 4143 3 User: 1090900715 4 Language: Pascal 5 Result: Accepted 6 Time:6388 ms 7 Memory:15852 kb 8 ****************************************************************/ 9 10 program j01; 11 var n,m,a,b,d:int64; 12 i:longint; 13 ma,mb,ida,idb:array[0..500086]of int64; 14 begin 15 readln(n,m); 16 for i:=1 to m do 17 begin 18 ma[i]:=0;mb[i]:=maxlongint*maxlongint; 19 end; 20 for i:=1 to n do 21 begin 22 readln(a,b,d); 23 if a>=ma[d] then 24 begin 25 ida[d]:=i; 26 ma[d]:=a; 27 end; 28 if b<=mb[d] then 29 begin 30 idb[d]:=i; 31 mb[d]:=b; 32 end; 33 end; 34 for i:=1 to m do 35 if ma[i]<=mb[i] then writeln('NIE') 36 else writeln('TAK ',idb[i],' ',ida[i]); 37 end.
4143: [AMPPZ2014]The Lawyer
Time Limit: 10 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 462 Solved: 257
[Submit][Status][Discuss]
Description
Byteasar要制订m天的会议计划,一共有n场会议,第i场会议开始于第d[i]天的第a[i]秒,结束于第d[i]天的第b[i]秒。
对于每一天,请找出这一天的两场会议i,j,使得它们不冲突,即不存在一个数k同时满足a[i]<=k<=b[i]以及a[j]<=k<=b[j]。
Input
第一行包含两个正整数n,m(2<=n<=500000,1<=m<=20),表示会议的场数和天数。
接下来n行,每行包含三个正整数a[i],b[i],d[i](1<=a[i]<b[i]<=80000000,1<=d[i]<=m),描述一场会议。
Output
输出m行。第i行输出第i天的答案,如果无解,输出NIE,否则输出TAK,然后输出这一天参加的两场会议的编号,
如有多组解,输出任意一组。
Sample Input
6 3
3 5 1
2 4 2
1 8 1
6 7 3
3 5 2
7 12 1
3 5 1
2 4 2
1 8 1
6 7 3
3 5 2
7 12 1
Sample Output
TAK 1 6
NIE
NIE
NIE
NIE