作业帮 > 综合 > 作业

pascal的一道题佳佳的魔法照片9 [提交该题] [讨论该问题] [Who AC?] [有关讨论] 本题我的状态:Un

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/11 09:23:15
pascal的一道题
佳佳的魔法照片
9 [提交该题] [讨论该问题] [Who AC?] [有关讨论]
本题我的状态:Unsubmited
尚未设置
描述 [题目背景]
如果你看过《哈利·波特》,你就会知道魔法世界里的照片是很神奇的.也许是因为小魔法师佳佳长的
太帅,很多人都找他要那种神奇的魔法照片,而且还都要佳佳和他的MM的合照.那些照片可是非常珍贵的,他到底应该把照片给谁呢?
[题目描述]
一共有n个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初始权值从大到小进行排序,每人就有了一个序号D[i](取值同样是1--n).按照这个序号对10取模的值将这些人分为10类.也就是说定义每个人的类别序号C[i]的值为(D[i]-1) mod 10 +1,显然类别序号的取值为1--10.第i类的人将会额外得到E[i]的权值.你需要做的就是求出加上额外权值以后,最终的权值最大的k个人,并输出他们的编号.权值都是正整数.在排序中,如果两人的W[i]相同,编号小的优先.
输入格式 共三行:
第一行输出用空格隔开的两个整数,分别是n和k.
第二行给出了10个正整数,分别是E[1]到E[10].
第三行给出了n个正整数,第i个数表示编号为i的人的权值W[i].
输出格式 只需输出一行用空格隔开的k个整数,分别表示最终的W[i]从高到低的人的编号.
输入文件 直接输入即可
输出文件 直接输出即可 注意,不要在最后输出空行或空格!
样例输入
10 10
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
样例输出
10 9 8 7 6 5 4 3 2 1
pascal的一道题佳佳的魔法照片9 [提交该题] [讨论该问题] [Who AC?] [有关讨论] 本题我的状态:Un
答案终于写好了,记得加分!
program yandiwen;
var
n,k,i,t,h:longint;
w,e,a:array[1..100000]of longint;
procedure as(r,l:longint);
var
x,i,j,v:longint;
begin
x:=w[(r+l) div 2];
i:=r;
j:=l;
repeat
while w[j]x do
i:=i+1;
if ij;
if ra[t] then
begin
h:=a[i];
a[i]:=a[t];
a[t]:=h;
end;
t:=t+1;
end;
end;
for i:=1 to k-1 do
write(a[i],' ');
write(a[k]);
end.