题意:

输入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 分)(结构体排序)的更多相关文章

  1. PAT 甲级 1016 Phone Bills (25 分) (结构体排序,模拟题,巧妙算时间,坑点太多,debug了好久)

    1016 Phone Bills (25 分)   A long-distance telephone company charges its customers by the following r ...

  2. PAT 甲级 1028. List Sorting (25) 【结构体排序】

    题目链接 https://www.patest.cn/contests/pat-a-practise/1028 思路 就按照 它的三种方式 设计 comp 函数 然后快排就好了 但是 如果用 c++ ...

  3. PAT甲级1016. Phone Bills

    PAT甲级1016. Phone Bills 题意: 长途电话公司按以下规定向客户收取费用: 长途电话费用每分钟一定数量,具体取决于通话时间.当客户开始连接长途电话时,将记录时间,并且客户挂断电话时也 ...

  4. PAT 乙级 1085. PAT单位排行 (25) 【结构体排序】

    题目链接 https://www.patest.cn/contests/pat-b-practise/1085 思路 结构体排序 要注意几个点 它的加权总分 是 取其整数部分 也就是 要 向下取整 然 ...

  5. PAT A 1016. Phone Bills (25)【模拟】

    题目:https://www.patest.cn/contests/pat-a-practise/1016 思路:用结构体存储,按照名字和日期排序,然后先判断是否有效,然后输出,时间加减直接暴力即可 ...

  6. PAT 甲级 1020 Tree Traversals (25分)(后序中序链表建树,求层序)***重点复习

    1020 Tree Traversals (25分)   Suppose that all the keys in a binary tree are distinct positive intege ...

  7. PAT 甲级 1146 Topological Order (25 分)(拓扑较简单,保存入度数和出度的节点即可)

    1146 Topological Order (25 分)   This is a problem given in the Graduate Entrance Exam in 2018: Which ...

  8. PAT 甲级 1071 Speech Patterns (25 分)(map)

    1071 Speech Patterns (25 分)   People often have a preference among synonyms of the same word. For ex ...

  9. 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 ...

  10. 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 ...

随机推荐

  1. Unity 鼠标旋转物体360展示

    PC端 using UnityEngine; using System.Collections; public class DragRound : MonoBehaviour { public Tra ...

  2. JS高级---实例对象使用属性和方法层层的搜索 (实例对象-->原型对象-->报错)

    实例对象使用属性和方法层层的搜索:   实例对象使用的属性或者方法, 先在实例中查找, 找到了则直接使用: 找不到则, 再去实例对象的__proto__指向的原型对象prototype中找, 找到了则 ...

  3. 推荐算法之---FM算法;

    一,FM算法: 1,逻辑回归上面进行了交叉特征.算法复杂度优化从O(n^3)->O(k*n^2)->O(k*n). 2,本质:每个特征都有一个k维的向量,代表的是每个特征都有k个不可告人的 ...

  4. jmeter循环读取数据库中的数据

    1,添加一个jdbc请求 2,添加一个循环控制器,循环的次数为sql返回的记录数${var_#} 3,添加一个计数器(用来做变量拼接) 4,拼接变量,往目标接口发请求 最后脚本的构造如下:

  5. java篇 之 继承

    this代表正在使用类的对象(的引用) java支持重载:允许在同一个类中使用相同的方法名(重载类型只区分参数列表,包括参数 顺序,参数个数,参数数据类型,与方法返回类型无关) 匹配: 方法名 参数列 ...

  6. 吴裕雄--天生自然神经网络与深度学习实战Python+Keras+TensorFlow:使用TensorFlow和Keras开发高级自然语言处理系统——LSTM网络原理以及使用LSTM实现人机问答系统

    !mkdir '/content/gdrive/My Drive/conversation' ''' 将文本句子分解成单词,并构建词库 ''' path = '/content/gdrive/My D ...

  7. Visual Studio调试Tersseract

    在Visual Studio中打开Tesseract项目,然后项目-->属性-->调试-->命令变量: 比如在debug目录下有一张 test.jpg的图片,里面有中文需要识别,命令 ...

  8. MyBatis中关于session以及cache的管理

    Mybatis中缓存分为一级缓存与二级缓存: 一级缓存指的只是缓存级别的一个命名,主要就是每个sqlsession里都有一个HashMap来存储数据,当然不同对象每个缓存区域也不一样,所以一级缓存是不 ...

  9. 关于iOS appIcon launchImage 尺寸

    https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix ...

  10. 连接数据库报错Access denied for user 'root'@'localhost' (using password:YES)

    报错信息为:pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using pa ...