2011.网研院.Problem B.虚数

妖狐艹你老母 2023-07-25 09:22 61阅读 0赞

Description
给你一个复数集合{Aj+i*Bj},保证Aj和Bj都是整数,初始为空集。
每次会给你如下两种操作中的一种:
1.“Insert x+iy”,其中x,y都是整数。表示在集合中加入一个复数 x+iy,同时输出此时集合的大小;
2.“Pop”。如果集合为空集直接返回“Empty!”,如果有元素则以”x+iy”的形式显示集合中模值最大的复数,然后将该元素从集合中删除,之后在第二行显示操作之后的集合大小,如果为空集则显示“Empty!”。
Input
第一行只有一个数T,代表case数。0<=T<=10
每一组case:
第一行有一个整数n,表示这组case中一共有n条命令 0<n<=100
接下来n行每行有一个命令,命令如上所述
保证不会输入两个模值同样的元素,并保证实部虚部都大于0,小于1000。
Output
依照上述原则输出每一个命令对应的输出
如果输入命令是Insert命令,则对应的输出占一行为集合大小;
如果输入命令是Pop命令,则对应的输出占一行或者两行,为模值最大的复数和集合大小。
请注意,输出集合大小的格式为”Size:空格x回车”,x为集合大小
Sample Input

  1. 1
  2. 5
  3. Pop
  4. Insert 1+i2
  5. Insert 2+i3
  6. Pop
  7. Pop

Sample Output

  1. Empty!
  2. Size: 1
  3. Size: 2
  4. 2+i3
  5. Size: 1
  6. 1+i2
  7. Empty!
  8. #include<bits/stdc++.h>
  9. using namespace std;
  10. struct comp {
  11. int shi;
  12. int xu;
  13. double res;
  14. friend bool operator < (comp a, comp b) {
  15. return a.res < b.res;
  16. }
  17. };
  18. int main() {
  19. int t,n;
  20. string op;
  21. int res;
  22. cin>>t;
  23. while(t--) {
  24. priority_queue<comp> s;
  25. comp tmp;
  26. cin>>n;
  27. while(n--) {
  28. cin>>op;
  29. if(op=="Insert") {
  30. scanf("%d+i%d",&tmp.shi,&tmp.xu);
  31. tmp.res=sqrt(pow(double(tmp.shi),2)+pow(double(tmp.xu),2));
  32. s.push(tmp);
  33. printf("Size: %d\n",s.size());
  34. } else if(op=="Pop") {
  35. if(s.empty()) {
  36. printf("Empty!\n");
  37. } else {
  38. tmp=s.top();
  39. s.pop();
  40. printf("%d+i%d\n", tmp.shi, tmp.xu);
  41. if(s.empty()) {
  42. printf("Empty!\n");
  43. } else {
  44. printf("Size: %d\n",s.size());
  45. }
  46. }
  47. }
  48. }
  49. }
  50. return 0;
  51. }

发表评论

表情:
评论列表 (有 0 条评论,61人围观)

还没有评论,来说两句吧...

相关阅读

    相关 2014..Problem C. 进程管理

    题目描述 在操作系统中,进程管理是非常重要的工作,每个进程都有唯一的进程标识(PID)。每个进程都可以启动子进程,此时我们称它为其子进程的父进程,除了PID为0的进程之外,

    相关 2014..Problem B. 最小堆

    题目描述 给定一棵带权二叉树,请判断它是不是一个最小堆。 一棵二叉树是一个最小堆,当且仅当对于树上任意一个节点,它的权值都小于或等于以它为根的子树中的所有权值。 输入

    相关 2014..Problem D. 网络传输

    题目描述 网络的高效互联与智能传输是提升海量用户服务请求映射效率的重要措施。在这个任务中,你要用最少的传输时间,将特定的数据源发送到指定的网络节点中。 我么给定的网络一