JZOJ__Day 6:【普及模拟】Oliver的成绩(score)
来源:互联网 发布:域名和网址和ip的联系 编辑:程序博客网 时间:2024/05/14 12:04
题目描述
Oliver进入初中后,觉得自己不能总是玩儿了,应该要好好学习了。正好一次考试结束了,Oliver想知道自己的语文,数学,英语分别与语文年级第一,数学年级第一,英语年级第一相差多少。
由于Oliver所在年级有N个人,所以Oliver想你编个程序帮帮他。
输入
score.in共3N+4行,第一~三行分别为Oliver的语文数学英语成绩(位数M),第四行为N,以下3N行,每行一个数(它们的位数是M),分别为第N个同学的语文,数学,英语成绩。
即:Oliver的语文 数学 英语
N
第一个人的语文
数学
英语
第二个人的语文
…
输出
score.out共一行,有三个数,分别为Oliver的语文数学英语与年级第一的差。
如果Oliver是第一,则输出0.
样例输入
10
10
10
3
0
80
0
40
0
0
0
0
100
样例输出
30 70 90
【数据范围】
对于50%的数据,0< N < 1000,0< M <19.
对于100%的数据,0< N <10000,0< M <30.且都为整数。
分析
这一题的意思是说,给出三科成绩,分别与其他的N个人的成绩作比较,并输出 单科最高成绩 减Oliver单科成绩。值得注意的是,成绩的位数可能有M(0
typearr=array[-10..30]of longint;constmax=30;varj,n,i:longint;x1,x2,x3,zfc,c,z,y,x:ansistring;procedure jian(s1,s2:ansistring);vara,b:arr;l1,l2,i,g,j:longint;begin fillchar(a,sizeof(a),0); fillchar(b,sizeof(b),0); l1:=length(s1); l2:=length(s2); for i:=1 to l1 do a[max-l1+i]:=ord(s1[i])-ord('0'); for i:=1 to l2 do b[max-l2+i]:=ord(s2[i])-ord('0'); g:=0; for i:=max downto 1 do if a[i]>=b[i]+g then begin a[i]:=a[i]-b[i]-g; g:=0; end else begin a[i]:=a[i]+10-b[i]-g; g:=1; end; i:=1; while (i<max)and(a[i]=0) do inc(i); for j:=i to max do write(a[j]); write(' ');end;begin assign(input,'score.in'); reset(input); assign(output,'score.out'); rewrite(output); readln(x); zfc:=''; for i:=1 to length(x) do if x[i]<>' ' then zfc:=zfc+x[i]; x:=zfc; readln(y); zfc:=''; for i:=1 to length(y) do if y[i]<>' ' then zfc:=zfc+y[i]; y:=zfc; readln(z); zfc:=''; for i:=1 to length(z) do if z[i]<>' ' then zfc:=zfc+z[i]; z:=zfc; readln(n); x1:='';x2:='';x3:=''; for i:=1 to n do begin readln(c); zfc:=''; if length(c)>=length(x1) then begin for j:=1 to length(c) do if c[j]<>' ' then zfc:=zfc+c[j]; if zfc>=x1 then x1:=zfc; end; readln(c); zfc:=''; if length(c)>=length(x2) then begin for j:=1 to length(c) do if c[j]<>' ' then zfc:=zfc+c[j]; if zfc>=x2 then x2:=zfc; end; readln(c); zfc:=''; if length(c)>=length(x3) then begin for j:=1 to length(c) do if c[j]<>' ' then zfc:=zfc+c[j]; if zfc>=x3 then x3:=zfc; end; end; if x1=x then write(0,' ') else if (length(x1)<length(x)) then write(0,' ') else if (x1>x)or(length(x1)>=length(x)) then jian(x1,x); if x2=y then write(0,' ') else if (length(x2)<length(y)) then write(0,' ') else if (x2>y)or(length(x2)>=length(y)) then jian(x2,y); if x3=z then write(0,' ') else if (length(x3)<length(z)) then write(0,' ') else if (x3>z)or(length(x3)>=length(z)) then jian(x3,z); close(input); close(output);end.
阅读全文
0 0
- JZOJ__Day 6:【普及模拟】Oliver的成绩(score)
- 【2015.10.17普及模拟】Oliver的成绩(score)
- JZOJ__Day 6:【普及模拟】神奇的项链(fett)
- JZOJ__Day 6:【普及模拟】团队背包(team)
- JZOJ__Day 2:【普及模拟】串
- JZOJ__Day 1:【普及模拟】PLES
- JZOJ__DAY 4:【普及模拟】最大值
- JZOJ__Day 4:【普及模拟】火柴
- JZOJ__Day 4:【普及模拟】游戏
- JZOJ__Day 5:【普及模拟】num
- JZOJ__Day 7:【普及模拟】蚂蚁
- JZOJ__Day 7:【普及模拟】max
- JZOJ__Day 8:【普及模拟】马农
- JZOJ__Day 9:【普及模拟】Square
- JZOJ__Day 10:【普及模拟】【USACO】贝茜的晨练计划
- JZOJ__Day 3:【NOIP普及模拟】排序(sort)
- JZOJ__Day 3:【NOIP普及模拟】数数(count)
- JZOJ__Day 2:【NOIP普及模拟】和谐数
- JAVA中isEmpty和null以及""的区别
- 关于springBoot中的常见错误
- 二叉查找树
- Cordic 算法的原理介绍
- 深入浅析Android坐标系统
- JZOJ__Day 6:【普及模拟】Oliver的成绩(score)
- CS107-Lecture 7-Note
- Android下USB Accessory的实现分析
- 自动轮播--面向对象实现方式
- 计算机图形学、数字图像处理、计算机视觉之间的区别与联系
- Java笔记
- Spring applicationContext.xml最全约束
- js运动技术
- Spark-core解读