|
|
back to boardWA#6 ?? I can't understand !! Here is my code : {$M 16777216} Program P1201_Which_day_is_it; {$APPTYPE CONSOLE} Var Days:array [1600..2400] of byte; fday,day,sum,month:byte; year:word; i,j,k,h,d,code:integer; s,t:string; Calendar:array[1..7] of string; {-----------------------------------------------------------} Procedure Init; Begin Days[1600]:=2; i:=1601; While i<=year do Begin days[i]:=days[i-1]; if (i-1) mod 4 =0 then inc(days[i]); if i-1=1918 then inc(days[i]); inc(days[i]); if days[i]>7 then days[i]:=days[i] mod 7; inc(i); end; End; {-----------------------------------------------------------} Begin {$IFNDEF ONLINE_JUDGE} Assign(input,'Input.txt'); Reset(input); Assign(output,'Output.txt'); Rewrite(output); {$ENDIF} Readln(input,day,month,year); init; fday:=days[year]; For i:=1 to month-1 do Begin if (i=1)or(i=3)or(i=5)or(i=7)or(i=8)or(i=10) then inc(fday,3); if (i=2) then if year mod 4 = 0 then inc(fday,1); if (i=4)or(i=6)or(i=9)or(i=11)or(i=12) then inc(fday,2); End; if (month=1)or(month=3)or(month=5)or(month=7)or(month=8)or(month=10) then sum:=31; if (month=2) then if (year mod 4=0) then sum:=29 else sum:=28; if (month=4)or(month=6)or(month=11)or(month=12) then sum:=30; Calendar[7]:='sun'; Calendar[1]:='mon'; Calendar[2]:='tue'; Calendar[3]:='wed'; Calendar[4]:='thu'; Calendar[5]:='fri'; Calendar[6]:='sat'; if fday>7 then fday:=fday mod 7; for i:=fday-1 downto 1 do Calendar[i]:=Calendar[i]+' '; k:=fday; for i:=1 to sum do begin if i=day then s:=']' else s:=' '; str(i,t); if length(t)=1 then t:=' '+t; s:=t+s; if i=day then s:='['+s; while length(s)<5 do s:=' '+s; Calendar[k]:=Calendar[k]+s; if k=7 then k:=1 else inc(k); end; For i:=1 to 7 do Begin While Calendar[i][length(calendar[i])]=' ' do delete(Calendar[i],Length(calendar[i]),1); writeln(output,Calendar[i]); End; {$IFNDEF ONLINE_JUDGE} Close(input); Close(output); {$ENDIF} End. My code have WA#6, but I think it alright !! Re: WA#6 Posted by melkiy 27 Apr 2009 01:43 No 1918 or 1752 calendar corrections must be taken into account. Do just what is asked in the condition. |
|
|