Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: utf-8
Méret: 1 KB
using System;
using System.Collections.Generic;
using System.IO;
namespace Rendez
{
class Order : IComparable<Order>
{
private int id;
private int k, b;
public int StartTime {
get {
return k;
}
}
public int EndTime {
get {
return b;
}
}
public int Id {
get {
return id;
}
}
public Order( int _k, int _b, int _id )
{
id = _id;
k = _k;
b = _b;
}
#region IComparable<Order> Members
public int CompareTo(Order other)
{
return EndTime.CompareTo(other.EndTime);
}
#endregion
}
class Program
{
private int n;
private List<Order> orders;
public Program()
{
StreamReader ins = new StreamReader("rendez.be");
string[] line = ins.ReadLine().Split(' ');
n = int.Parse( line[0] );
orders = new List<Order>(n);
int id = 0;
for( int i=0; i<n; i++ ) {
line = ins.ReadLine().Split(' ');
orders.Add( new Order( int.Parse( line[0] ), int.Parse( line[1] ), ++id ) );
}
ins.Close();
orders.Sort();
int room1End = -1, room2End = -1;
List<int> room1 = new List<int>(n), room2 = new List<int>(n);
foreach(Order o in orders) {
if( o.StartTime > room1End && (o.StartTime <= room2End || room1End >= room2End) ) {
room1.Add(o.Id);
room1End = o.EndTime;
} else if( o.StartTime > room2End && (o.StartTime <= room1End || room2End >= room1End) ) {
room2.Add(o.Id);
room2End = o.EndTime;
}
}
StreamWriter outs = new StreamWriter("rendez.ki");
outs.WriteLine("{0} {1}", room1.Count, room2.Count);
foreach(int ID in room1)
outs.Write("{0} ", ID);
outs.WriteLine();
foreach(int ID in room2)
outs.Write("{0} ", ID);
outs.WriteLine();
outs.Close();
}
public static void Main(string[] args)
{
new Program();
}
}
}