【PAT甲级】1016 Phone Bills (25 分)(结构体排序)
题意:
输入24个正整数代表从0到23每个小时通话一分钟花费的美分。输入一个正整数N(<=1000),然后输入N组字符串,每个字符串包含客户的名字和通话的时刻以及打出或者挂断的状态。
按照字典序输出用户的名字,(每一段,按行输出)通话时长和花费,以及Total amount。
trick:
对于没打通的用户(没有花费),不要输出它的Total amount。(第1,2数据点答案错误原因)
AAAAAccepted code:
#include<bits/stdc++.h>
using namespace std;
int a[];
typedef struct users{
string name;
int month,day,hour,minute,time;
string condition;
int flag;
};
users user[];
bool cmp(users a,users b){
if(a.name!=b.name)
return a.name<b.name;
else{
if(a.day!=b.day)
return a.day<b.day;
else if(a.hour!=b.hour)
return a.hour<b.hour;
else
return a.minute<b.minute;
}
}
map<string,double>mp;
int main(){
int all=;
for(int i=;i<;++i){
cin>>a[i];
all+=a[i];
}
int n;
cin>>n;
for(int i=;i<=n;++i){
cin>>user[i].name;
scanf("%d:%d:%d:%d ",&user[i].month,&user[i].day,&user[i].hour,&user[i].minute);
cin>>user[i].condition;
if(user[i].condition[]=='n')
user[i].flag=;
}
sort(user+,user++n,cmp);
string tmp=user[].name;
user[n+].name="sewage";
for(int i=;i<=n+;++i){
if(user[i].name!=tmp&&mp[tmp])
printf("Total amount: $%.2f\n",mp[tmp]);
tmp=user[i].name;
if(user[i].flag==&&user[i+].flag==&&user[i].name==user[i+].name){
if(!mp[user[i].name]){
cout<<user[i].name;
printf(" %02d\n",user[i].month);
}
printf("%02d:%02d:%02d %02d:%02d:%02d ",user[i].day,user[i].hour,user[i].minute,user[i+].day,user[i+].hour,user[i+].minute);
double sum=;
int mm=;
mm+=-user[i].minute;
sum=1.0*(-user[i].minute)*a[user[i].hour];
mm+=user[i+].minute;
sum+=1.0*user[i+].minute*a[user[i+].hour];
user[i].hour++;
for(int j=user[i].hour;j<;++j)
sum+=1.0*a[j]*,mm+=;
for(int j=;j<user[i+].hour;++j)
sum+=1.0*a[j]*,mm+=;
mm+=(user[i+].day-user[i].day-)*;
sum+=1.0*(user[i+].day-user[i].day-)*all*;
sum/=100.0;
printf("%d $%.2f\n",mm,sum);
mp[user[i].name]+=sum;
++i;
}
}
return ;
}
【PAT甲级】1016 Phone Bills (25 分)(结构体排序)的更多相关文章
- PAT 甲级 1016 Phone Bills (25 分) (结构体排序,模拟题,巧妙算时间,坑点太多,debug了好久)
1016 Phone Bills (25 分) A long-distance telephone company charges its customers by the following r ...
- PAT 甲级 1028. List Sorting (25) 【结构体排序】
题目链接 https://www.patest.cn/contests/pat-a-practise/1028 思路 就按照 它的三种方式 设计 comp 函数 然后快排就好了 但是 如果用 c++ ...
- PAT甲级1016. Phone Bills
PAT甲级1016. Phone Bills 题意: 长途电话公司按以下规定向客户收取费用: 长途电话费用每分钟一定数量,具体取决于通话时间.当客户开始连接长途电话时,将记录时间,并且客户挂断电话时也 ...
- PAT 乙级 1085. PAT单位排行 (25) 【结构体排序】
题目链接 https://www.patest.cn/contests/pat-b-practise/1085 思路 结构体排序 要注意几个点 它的加权总分 是 取其整数部分 也就是 要 向下取整 然 ...
- PAT A 1016. Phone Bills (25)【模拟】
题目:https://www.patest.cn/contests/pat-a-practise/1016 思路:用结构体存储,按照名字和日期排序,然后先判断是否有效,然后输出,时间加减直接暴力即可 ...
- PAT 甲级 1020 Tree Traversals (25分)(后序中序链表建树,求层序)***重点复习
1020 Tree Traversals (25分) Suppose that all the keys in a binary tree are distinct positive intege ...
- PAT 甲级 1146 Topological Order (25 分)(拓扑较简单,保存入度数和出度的节点即可)
1146 Topological Order (25 分) This is a problem given in the Graduate Entrance Exam in 2018: Which ...
- PAT 甲级 1071 Speech Patterns (25 分)(map)
1071 Speech Patterns (25 分) People often have a preference among synonyms of the same word. For ex ...
- PAT 甲级 1063 Set Similarity (25 分) (新学,set的使用,printf 输出%,要%%)
1063 Set Similarity (25 分) Given two sets of integers, the similarity of the sets is defined to be ...
- PAT 甲级 1059 Prime Factors (25 分) ((新学)快速质因数分解,注意1=1)
1059 Prime Factors (25 分) Given any positive integer N, you are supposed to find all of its prime ...
随机推荐
- java.util.Properties类,保存时保留注释及格式不变
原文地址:http://blog.csdn.net/benbenxiongyuan/article/details/53006097 参考地址:http://www.iteye.com/topic/1 ...
- python GIL锁与多cpu
多核CPU linux : cat /proc/cpuinfo 如果你不幸拥有一个多核CPU,你肯定在想,多核应该可以同时执行多个线程. 如果写一个死循环的话,会出现什么情况呢? 打开Mac OS ...
- SpringBoot启动后自动打开浏览器访问项目
之前我们用SSM或者SSH进行JAVA WEB开发的时候,IDEA 需要配置Tomcat然后把项目放到tomcat运行,tomcat启动的时候会自动打开浏览器去访问项目,但是SpringBoot是内嵌 ...
- 喵星之旅-狂奔的兔子-myeclipse搭建ssm
. 可以使用试用期限内的myeclipse,也可以找到有授权的机器进行操作.搭建好的项目框架可以直接移植到免费软件eclipse使用.或者直接购买myeclipse授权. 一.创建一个java web ...
- spring 中json使用
1.json序列化工具 public class JsonUtils { /** * Logger for this class */ private static final Logger logg ...
- spring与jdbc,mybatis的结合
关键点在于把DataSource(数据源)配置到spring容器中,通过数据源获取数据库连接对象 数据库连接池(pool):管理数据库连接对象 四种数据源: 1)<!-- 基于jdk的规范数据源 ...
- 【原】python-jenkins信息
1.官方文档: https://python-jenkins.readthedocs.io/en/latest/examples.html#example-1-get-version-of-jenki ...
- 【PAT甲级】1087 All Roads Lead to Rome (30 分)(dijkstra+dfs或dijkstra+记录路径)
题意: 输入两个正整数N和K(2<=N<=200),代表城市的数量和道路的数量.接着输入起点城市的名称(所有城市的名字均用三个大写字母表示),接着输入N-1行每行包括一个城市的名字和到达该 ...
- Java补强转
/* 对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围, 那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char). 1. 如果没有超过左侧 ...
- 【译】高级T-SQL进阶系列 (三)【中篇】:理解公共表表达式(CTEs)
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 一个简单的CTE例子 如前所述,CTE‘s提供给你了一个方法来更容易的书写复杂的代码以提高其可读性.假设你有列表 ...