pascal question

来源:百度知道 编辑:UC知道 时间:2024/05/30 09:15:28
老王算是一位福利彩票迷,每次总是购买“中国福利彩票 东方大乐透(37选7)”。他相信总有一天这会给他带来好运。众所周知,只有当购买的彩票中某一注7个1~37之间的数字与开奖公布的7个1~37之间数字完全相同时,才算中大奖。如果没有中奖,他想知道本次购买的彩票中,哪一注与开奖公布的7个数字相同的最多,共有几个数字相同。例如,本次他购买了5注彩票,每注7个数字按照升序排列依次为:
01 04 05 12 13 15 24
15 17 18 26 27 34 35
05 14 21 22 23 25 26
04 15 17 32 33 34 37
07 17 23 25 27 28 29
开奖公布的7个数字按照升序排列为:
02 06 11 16 29 30 31
那么只有第5注有一个数字29与开奖公布的数字相同。
输入文件
共有n+2行。第一行是一个整数n(1≤n≤10000),表示本次购买彩票的注数。接下来的第2~n+1行是每注彩票的7个数字(均已按照升序排列)。第n+2行是本次开奖公布的7个数字(也已按照升序排列)。
输出文件
包括二行,第一行是与开奖公布的7个数字相同最多的那一注的序号。(同样的情况取最先出现的那一注的序号)。如果没有一个数字相同,那么就输出0。当然,如果有1注7个数字与开奖公布的7个数字完全相同,就输出‘Wa?Yun!!!’。第二行输出Max=相同数字的个数
[样例输入]
5
01 04 05 12 13 15 24
15 17 18 26 27 34 35
05 14 21 22 23 25 26
04 15 17 32 33 34 37
07 17 23 25 27 28 29
02 06 11 16 29 30 31
[样例输出]
5
Max=1

var n,i,j,k,max,maxi:longint; a:array[1..10000,1..7] of integer; b:array[1..37] of 0..1;begin readln(n); for i:=1 to n do for j:=1 to 7 do read(a[i,j]); for i:=1 to 7 do begin read(k); b[k]:=1; end; for i:=1 to n do begin k:=0; for j:=1 to 7 do if b[a[i,j]]=1 then inc(k); if k>max then begin max:=k; maxi:=i; end; end; if max=7 then writeln('Wa?Yun!!!') else writeln(maxi); writeln('Max=',max);end.