喜羊羊运动会——撑杆跳高【试题描述】运动会马上就要开始了,撑杆跳高场地上,羊村的N(3 <= N <= 100)个村民正排成一队有秩序地练习。
“好高啊,我都不知道自己能不能跳过去”,懒羊羊慢条斯理地说道。
“这么高,不知道最少要几只羊叠在一起才会够得着”,沸羊羊向来比较喜欢思考数学问题,这样说道。
试编一程序,计算出最少要几只羊叠在一起(一头羊踩在另一头羊的背上)才能够得着横杆(所谓够得着,指羊的身高总和不小于横竿的高度B)。
如果N头羊叠在一起,都够不着横竿,则输出“Impossible”【输入描述】第一行:两个整数N(3 <= N <= 100)和B,表示队伍中羊的总数以及横竿的高度。
第二行:空格隔开的N个整数,表示每只羊的身高Hi(1 <= Hi <= 10000)。
【输出描述】一行,一个整数,表示最少要几头羊才能够到横竿。
如果N 只羊叠在一起都够不着则输出“Impossible”。
【输入样例】样例1:5 236 8 1 3 9样例2:6 161 2 3 1 3 5【输出样例】样例1:3样例2:Impossible【试题来源】武进区夏令营程序设计小能手PK program ex1797;var n,i,j,t,sum:integer;b,s:real;a:array[1..100] of integer;beginreadln(n,b);for i:=1 to n do read(a[i]);for i:=1 to n-1 dofor j:=i+1 to n doif a[i]<a[j] then begint:=a[i];a[i]:=a[j];a[j]:=t;end;s:=0; i:=0;sum:=0;repeatinc(i);s:=s+a[i];inc(sum);until (s>=b) or (i>=n);if s<b then write('Impossible') else write(sum);end.彩票摇奖(LOTTERY.PAS)【问题描述】为了丰富人民群众的生活、支持某些社会公益事业,北塔市设置了一项彩票。
该彩票的规则是:(1)每张彩票上印有7个各不相同的号码,且这些号码的取指范围为1~33。
(2)每次在兑奖前都会公布一个由七个各不相同的号码构成的中奖号码。
(3)共设置7个奖项,特等奖和一等奖至六等奖。
兑奖规则如下:特等奖:要求彩票上7个号码都出现在中奖号码中。
一等奖:要求彩票上有6个号码出现在中奖号码中。
二等奖:要求彩票上有5个号码出现在中奖号码中。
三等奖:要求彩票上有4个号码出现在中奖号码中。
四等奖:要求彩票上有3个号码出现在中奖号码中。
五等奖:要求彩票上有2个号码出现在中奖号码中。
六等奖:要求彩票上有1个号码出现在中奖号码中。
注:兑奖时并不考虑彩票上的号码和中奖号码中的各个号码出现的位置。
例如,中奖号码为23 31 1 14 19 17 18,则彩票12 8 9 23 1 16 7由于其中有两个号码(23和1)出现在中奖号码中,所以该彩票中了五等奖。
现已知中奖号码和小明买的若干张彩票的号码,请你写一个程序帮助小明判断他买的彩票的中奖情况。
输入文件(LOTTERY.IN):输入文件的第一行只有一个自然数N ≤ 1000,表示小明买的彩票张数;第二行存放了7个介于1和33之间的自然数,表示中奖号码;在随后的N行中每行都有7个介于1和33之间的自然数,分别表示小明所买的N张彩票。
输出文件(LOTTERY.OUT):依次输出小明所买的彩票的中奖情况(中奖的张数),首先输出特等奖的中奖张数,然后依次输出一等奖至六等奖的中奖张数。
输入输出样例:【输入样例】LOTTERY.IN223 31 1 14 19 17 1812 8 9 23 1 16 711 7 10 21 2 9 31【输出样例】LOTTERY.OUT0 0 0 0 0 1 1彩票摇奖(LOTTERY.PAS)【问题描述】为了丰富人民群众的生活、支持某些社会公益事业,北塔市设置了一项彩票。
该彩票的规则是:(1)每张彩票上印有7个各不相同的号码,且这些号码的取指范围为1~33。
(2)每次在兑奖前都会公布一个由七个各不相同的号码构成的中奖号码。
(3)共设置7个奖项,特等奖和一等奖至六等奖。
兑奖规则如下:特等奖:要求彩票上7个号码都出现在中奖号码中。
一等奖:要求彩票上有6个号码出现在中奖号码中。
二等奖:要求彩票上有5个号码出现在中奖号码中。
三等奖:要求彩票上有4个号码出现在中奖号码中。
四等奖:要求彩票上有3个号码出现在中奖号码中。
五等奖:要求彩票上有2个号码出现在中奖号码中。
六等奖:要求彩票上有1个号码出现在中奖号码中。
注:兑奖时并不考虑彩票上的号码和中奖号码中的各个号码出现的位置。
例如,中奖号码为23 31 1 14 19 17 18,则彩票12 8 9 23 1 16 7由于其中有两个号码(23和1)出现在中奖号码中,所以该彩票中了五等奖。
现已知中奖号码和小明买的若干张彩票的号码,请你写一个程序帮助小明判断他买的彩票的中奖情况。
输入文件(LOTTERY.IN):输入文件的第一行只有一个自然数N ≤ 1000,表示小明买的彩票张数;第二行存放了7个介于1和33之间的自然数,表示中奖号码;在随后的N行中每行都有7个介于1和33之间的自然数,分别表示小明所买的N张彩票。
输出文件(LOTTERY.OUT):依次输出小明所买的彩票的中奖情况(中奖的张数),首先输出特等奖的中奖张数,然后依次输出一等奖至六等奖的中奖张数。
输入输出样例:【输入样例】LOTTERY.IN223 31 1 14 19 17 1812 8 9 23 1 16 711 7 10 21 2 9 31【输出样例】LOTTERY.OUT0 0 0 0 0 1 1vara:array[1..33,0..1000]of boolean; b:array[0..7]of longint;n,i,j,u,s:longint;beginreadln(n);for i:=0 to n dofor j:=1 to 7 dobeginread(u);a[u,i]:=true;end;for i:=1 to n dobeginfor j:=1 to 33 doif a[j,0] then if a[j,i] then inc(s);inc(b[s]);s:=0;end;for i:=7 downto 1 dowrite(b[i],' ');end.贪污排名(Rank.pas\c\cpp)【题目描述】党的十七大热烈召开,胡书记发表了热情洋溢的讲话,其中一个内容是腐败问题,胡书记强调共产党与贪污腐败水火不容,体现了反腐倡廉的决心。
2007年的确是不平凡的一年,尤其在反腐败问题上,确定做了不少工作,抓了N个腐败分子,每抓一个贪官都要求他报出自己的财富,用一个整数表示,胡书记每抓一个都想知道这个贪官在已经抓获的贪官中按照财富排第几名。
党把这个光荣的任务交给了你。
Input输入文件Rank.in第一行输入一个整数N,表示今年抓获贪官的数量。
接下来N行,每行一个整数,表示按照今年被抓获的顺序给出这N个贪官的财富。
Output输出文件Rank.out输出N行,第i行表示第i个贪官的财富在1-i个贪官中排第几位。
Sample Input67868403989Sample Output122341Hint【数据说明】100%的数据N<=45000,财富互不相同且不超过2*10^9(虽然现实中可能不止)30%的数据N<=8000Sourcevars:array[1..45000] of longint;a,b:array[1..45000,1..2] of longint; n,i,j,k,t,ss:longint;beginreadln(n);readln(s[1]);writeln('1');for i:=2 to n do beginreadln(s[i]);t:=s[i]; j:=1; ss:=0;while j<>0 do beginif t>s[j] then begina[j,1]:=a[j,1]+1;k:=j; j:=b[j,1];endelse beginss:=ss+a[j,1]+1;a[j,2]:=a[j,2]+1;k:=j; j:=b[j,2];end;end;if t>s[k] then b[k,1]:=i else b[k,2]:=i;writeln(ss+1);end;end.所谓丑数,就是指那些因子只含2,3,5的数。
1,2,3,4,5,6,8,9,10,12,15是最前面的11个丑数。
为了方便起见,把1也看作是丑数。
请你编写一个程序,输入n,n<3000,寻找并打印第n个丑数。
如输入:11输出:15const maxn=3000;mark:array[1..3] of integer=(2,3,5);var I,j,n:longint;min:real;p:array[1..3] of longint;ugly:array[1..maxn] of real;begin write(‘input n:’);readln(n);ugly[1]:=1;for I:=1 to 3 do p[I]:=1;for I:=2 to n dobegin min:=ugly[p[1]]*mark[1];for j:=2 to 3 doif ugly[p[j]]*mark[j]<min then min:= ugly[p[j]]*mark[j];ugly[I]:=min;for j:=1 to 3 doif ugly[p[j]]*mark[j]=min then p[j]:=p[j]+1;end;writeln(ugly[n]:0:0);readlnend.输入40输出144输入2999输出278628139010输入200输出16200输入1500输出859963392锁妖塔的建造很特别,塔总共有n层,但是高度却不相同,这造成了小A 爬过每层的时间也不同。
小A会用仙术,每用一次可以让他向上跳一层或两层,但是每次跳跃后小A都将用完灵力,必须爬过至少一层才能再次跳跃。
小A想用最短的时间爬到塔顶,可是他不能找到时间最短的方案。
所以请你帮他找到一个时间最短的方案让他爬到塔顶,小A只关心时间,所以你只要告诉他最短时间是多少就可以了。
[输入格式]tower.in第一行一个整数n (n<=10000),表示塔的层数。