题目:

Oliver进入初中后,觉得自己不能总是玩儿了,应该要好好学习了。正好一次考试结束了,
Oliver想知道自己的语文,数学,英语分别与语文年级第一,数学年级第一,英语年级第一
相差多少。由于Oliver所在年级有N个人,所以Oliver想你编个程序帮帮他。

输入:

共3N+4行,第一~三行分别为Oliver的语文数学英语成绩(位数M),第四行为N
,以下3N行,每行一个数(它们的位数是M),分别为第N个同学的语文,数学,英语成绩。
即:
Oliver的语文
Oliver的数学
Oliver的英语
N
第一个人的语文
数学
英语
第二个人的语文

输出:

共一行,有三个数,分别为Oliver的语文数学英语与年级第一的差。
如果Oliver是第一,则输出0.

数据范围与约定:

【数据范围】
对于50%的数据,0<N<1000,0<M<19.
对于100%的数据,0<N<10000,0<M<30.且都为整数

思路:

一看到30位的数字,我马上就起来了,这不是高精度嘛,几天不见,这么拉了!
按照题意去做就好了,注意细节

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<vector>
#define ull unsigned long long
#define VI vector<int>using namespace std;struct node
{VI a;VI b;VI c;
}t,oli,fir;
VI max(VI,VI);//vector比大小
VI sub(VI &,VI &);//高精减法
void read(string,VI &);//将字符串存到vector中
void out(VI);//输出vector
void clear(VI &);//清空vector
string y,s,yi;
int n;
int main()
{//freopen("out.txt","w",stdout);cin >> y >> s >> yi;read(y,oli.a);read(s,oli.b);read(yi,oli.c);cin >> n;for(int i = 1;i <= n;++i){cin >> y >> s >> yi;read(y,t.a);read(s,t.b);read(yi,t.c);fir.a = max(fir.a,t.a);//打擂台fir.b = max(fir.b,t.b);fir.c = max(fir.c,t.c);clear(t.a);//清空clear(t.b);clear(t.c);}if(oli.a == max(oli.a,fir.a))//第一名是Oliver,特判{putchar('0');cout << " ";} else{out(sub(fir.a,oli.a));cout << " ";}if(oli.b == max(oli.b,fir.b)){putchar('0');cout << " ";}else{out(sub(fir.b,oli.b));cout << " ";}if(oli.c == max(oli.c,fir.c)){putchar('0');cout << endl;}else{out(sub(fir.c,oli.c));cout << endl;}return 0;
}VI max(VI a,VI b)
{if(a.size() < b.size()) return b;else if(a.size() > b.size()) return a;for(int i = a.size() - 1;i >= 0;--i){if(a[i] > b[i]) return a;else if(b[i] > a[i]) return b;}return a;
}void read(string x,VI &a)
{for(int i = x.size() - 1;i >= 0;--i){a.push_back(x[i] - '0');}
}void out(VI a)
{for(int i = a.size() - 1;i >= 0;--i){cout << a[i];}
}VI sub(VI &a,VI &b)
{VI c;int t = 0;for(int i = 0;i < a.size();++i){t = a[i] - t;if(i < b.size()) t -= b[i];c.push_back((t + 10) % 10);if(t < 0) t = 1;else t = 0;}while(c.size() > 1&&c.back() == 0) {c.pop_back();}return c;
}void clear(VI &a)
{while(a.size()){a.pop_back();}
}

感谢你的阅读,希望这篇题解能帮到你!

Oliver的成绩(vector)相关推荐

  1. JZOJ__Day 6:【普及模拟】Oliver的成绩(score)

    题目描述 Oliver进入初中后,觉得自己不能总是玩儿了,应该要好好学习了.正好一次考试结束了,Oliver想知道自己的语文,数学,英语分别与语文年级第一,数学年级第一,英语年级第一相差多少. 由于O ...

  2. 【高精】Oliver的成绩(jzoj 2008)

    Oliver的成绩 题目大意: Oliver考了一次试,现在知道他的语数英的成绩,还有年级其他n个人的成绩,现在问Oliver三科各和年级第一差多少分,如果Oliver在这一科上是第一,则输出'0' ...

  3. 纪中 Day13Day14

    纪中 Day13&Day14 T1: 高精减例题 我竟然在输出0的时候换了行!! T2: 想蒙分,没做出来 T3: 深搜蒙分 T4: 数学不好,没推出方程 T1 Oliver的成绩 题目: O ...

  4. SzNOI语法百题之1-10

    SzNOI语法137题之总目录: {序号 题号 题目1 d001 问候 2 d002 加法 3 d003 计算矩形的周长和面积 4 d004 求两数中的较大者 5 d005 求圆的周长 和 面积 6 ...

  5. 牛客网——华为题库(61~70)

    华为题库 61.放苹果 62.查找输入整数二进制中1的个数 63.DNA序列 64.MP3光标位置 65.查找两个字符串a,b中的最长公共子串 66.配置文件恢复 67.24点游戏算法 68.成绩排序 ...

  6. 【PAT甲级】A1051-A1100刷题记录

    文章目录 (栈) A1051 Pop Sequence (25 分) 0.47 (静态链表) A1052 Linked List Sorting (25 分) 0.21 (静态树+先根遍历DFS) A ...

  7. 机器学习实验《多源数据集成、清洗和统计》 C++ 实现

    题目: 某班有同学100人,现要从两个数据源汇总学生数据.第一个数据源在数据库中,第二个数据源在txt文件中,两个数据源课程存在缺失.冗余和不一致性,请用C/C++/Java程序实现对两个数据源的一致 ...

  8. java后端系统学习总结 02_数据库基础学习、jdbc基础学习、er图基础学习、数据库——(完结)

    猿猿正在系统的学习一些计算机知识,和后端技术栈,目前阶段主要在系统学习java.此专栏,为我学习过程中的学习笔记,便于日后复习回顾来看,也很适合新人学习参考. 以下是猿猿对数据库和java深入的第一遍 ...

  9. PAT1004 成绩排名【vector sort排序、string的使用】

    读入 n(>0)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 n 第 2 行:第 1 个学生的 ...

  10. 对vector等STL标准容器进行排序操作

    西方有句谚语:不要重复发明轮子! STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已 ...

最新文章

  1. 部署Configuration Manager主站点以及辅助站点
  2. 关于mysql启动问题---mysqld_safe mysqld from pid file * ended
  3. Java实现算法导论中快速傅里叶变换FFT迭代算法
  4. java list有序还是无序_牛批!2w字的Java集合框架面试题精华集(2020最新版),赶紧收藏。...
  5. 劲脆鸡米花、鸡排、黄金鸡块
  6. CALL FUNCTION START NEW TASK
  7. c++ 如何确认网卡为无线网卡_笔记本无线网卡有哪几种 有必要升级吗
  8. NIPS 2018 接收论文list 完整清单
  9. 关于python的垃圾回收机制_Python的垃圾回收机制
  10. 这个世界上有一个故事,叫做《大话西游》。
  11. 演示如何利用log4net记录程序日志信息
  12. 算法的定义、特征及其算法设计的要求
  13. 谷歌插件 axure +去广告插件
  14. [每日一氵] 正则表达式以x开头,以x结尾的字符串
  15. 别学英语了!微软给PPT和Skype新加的这个功能,让你和老外从此交流无障碍
  16. MacPro安装运行Win10虚拟机 (Parallels Desktop)
  17. 求助,WIN10系统,我的推特用不了,提示网络没连接,其实我网络是好的,求大神指点,万分感谢!
  18. 程序员真的是吃青春饭的吗?有哪些建议可以给刚入职的程序员?(全是干货)...
  19. ps play android下载地址,PSPlay
  20. 【docker】Mac下oracle10g下载安装

热门文章

  1. 使用Vue+DataV+ECharts打造新冠肺炎疫情数据大屏(可动态刷新)
  2. DNS污染,配置DNS
  3. php 模板对象,php面向对象--PHP模板 ppt
  4. 合宙Air105 + GC032A摄像头驱动显示教程说明
  5. 【转载】JavaWeb之ssm框架搭建中遇到的问题
  6. [Python趣味应用]总有人想偷看你电脑?留下证据后办他~~
  7. 将lol人物模型导入到Unity3d
  8. 代码实现矩阵求逆的三种方式(超详细、已实现)
  9. apk修改android开机画面,Android手机开机动画的修改
  10. Setting语言与输入法列表客制化