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: 3 KB
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace gazda
{
class Interval
{
private int x1,y1, x2,y2;
public Interval( int _x1, int _y1, int _x2, int _y2 )
{
x1 = _x1;
y1 = _y1;
x2 = _x2;
y2 = _y2;
}
public void printLine( StreamWriter outs )
{
outs.WriteLine("{0} {1} {2} {3}", x1, y1, x2, y2);
}
}
class gazda
{
private int year;
private int k, l;
private int[,] days = new int[13, 31];
private List<Interval> listSafe = new List<Interval>();
private List<Interval> listDangerous = new List<Interval>();
public bool isLeapYear()
{
return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
public void nextDay(ref int m, ref int d)
{
if (
((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && (d == 31)) ||
((m == 4 || m == 6 || m == 9 || m == 11) && (d == 30)) ||
(m == 2 && ((d == 29 && isLeapYear()) || (d == 28 && !isLeapYear())))
)
{
d = 0;
m++;
}
d++;
}
public gazda()
{
StreamReader ins = new StreamReader("gazda.be");
for (int i = 0; i < 12; i++)
for (int j = 0; j < 31; j++)
{
days[i, j] = 0;
}
days[12, 0] = -1;
year = int.Parse(ins.ReadLine());
k = int.Parse(ins.ReadLine());
for (int i = 0; i < k; i++)
{
readData(ins);
}
l = int.Parse(ins.ReadLine());
for (int i = 0; i < l; i++)
{
readData(ins);
}
int m = 1, d = 1;
int startM = 1, startD = 1;
int prevM = 1, prevD = 1;
int prevType = -1;
while (m != 13 || d != 2)
{
if ( prevType != days[m - 1, d - 1])
{
if (prevType == 0)
{
listSafe.Add(new Interval(startM, startD, prevM, prevD));
}
else if (prevType == 2)
{
listDangerous.Add(new Interval(startM, startD, prevM, prevD));
}
prevType = days[m - 1, d - 1];
startM = m; startD = d;
}
prevM = m; prevD = d;
nextDay(ref m, ref d);
}
StreamWriter outs = new StreamWriter("gazda.ki");
outs.WriteLine( listSafe.Count );
foreach (Interval iv in listSafe) iv.printLine(outs);
outs.WriteLine(listDangerous.Count);
foreach (Interval iv in listDangerous) iv.printLine(outs);
outs.Close();
}
private void readData( StreamReader ins )
{
string[] line = ins.ReadLine().Split(' ');
int sm = int.Parse(line[0]);
int sd = int.Parse(line[1]);
int em = int.Parse(line[2]);
int ed = int.Parse(line[3]);
int m = sm;
int d = sd;
days[m - 1, d - 1]++;
while (!(m == em && d == ed))
{
nextDay(ref m, ref d);
days[m - 1, d - 1]++;
}
}
static void Main(string[] args)
{
new gazda();
}
}
}