在公司里面,程序猿经常有一堆todolist要做,而这些todolist是产品经理分配给他们的。但是当程序员遇到不懂技术的产品狗时,就悲剧了。产品经理经常修改他们的todolist,比如:添加,减少他们的todolist。
请设计一个类CodeMonkey ,表示程序猿,另一个类ProductDog,表示产品经理。

  • CodeMonkey类有私有成员 name,todolist。构造函数初始化姓名和todolist,公有函数 int sizeof_todolist(), 来自ProductDog类的友元函数 add_todolist(CodeMonkey&,int),reduce_todolist(CodeMonkey& , int);
  • ProductDog类有公有函数 add_todolist(CodeMonkey&,int),reduce_todolist(CodeMonkey& , int)

Input Specification

每个测试文件包含一组测试用例,对于每个测试用例,第一行输入 n (1<= n <= 10^6)表示有n个程序员,接下去n行,每行为: name x 表示名为name的程序员的todolist的长度为x。 接下去一行 m (1<=m<=10^6),表示产品经理分配任务的次数。 接下去m行,每行为 name opt x , opt 为 0 表示名为name的程序猿的todolist增加x,opt为 1 表示减少x。 输入数据保证合法性。

Output Specification

对于每个程序员,请输出 name x,x表示最终的todolist长度。按输入顺序输出。

Sample Input:

3
Jack 1
Luck 2
Tom  3
4
Tom   0 100
Luck  0 50
Jack  0 25
Tom   1 50

Sample Output:

Jack  26
Luck  52
Tom   53

 
时间限制
1000 ms
内存限制
65536 kB
代码长度限制
8192 B
判题程序
Standard
作者
etaf
来源
友元


 
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
class Product;
class CodeMonkey;
class ProductDog
{public:  void creat(CodeMonkey *,int ,int);  void add_todolist(CodeMonkey &,int);  void reduce_todolist(CodeMonkey &,int);
};
class CodeMonkey
{  friend void ProductDog::creat(CodeMonkey *,int ,int);friend void ProductDog::add_todolist(CodeMonkey &,int);friend void ProductDog::reduce_todolist(CodeMonkey &,int);friend void Qsort(CodeMonkey*,int,int);private :  string name;  int todolist,sign;public:  int turn_sign()  {    return sign;  }    string turn_name()  {    return name;  }  void cout_todolist()  {    cout<<name<<" "<<todolist<<endl;  }void creat(int len)  {    cin>>name>>todolist;      sign=len;  }
};
void ProductDog::add_todolist(CodeMonkey &b,int todolist)
{    b.todolist=b.todolist+todolist;
}
void ProductDog::reduce_todolist(CodeMonkey &b,int todolist)
{    b.todolist=b.todolist-todolist;
}
void ProductDog::creat(CodeMonkey *b,int n,int len)
{int a,front,len2,sign,todolist;string name;  while(n--)  {    front=0;len2=len;a=len/2;    cin>>name;    do{      if(b[a].name<name){      front=a;      }else      {        len2=a;  }      a=(front+len2)/2;    }while(b[front].name!=name&&b[len2].name!=name);      if(b[front].name==name)a=front;else a=len2;cin>>sign>>todolist;if(sign==0)add_todolist(b[a],todolist);if(sign==1)reduce_todolist(b[a],todolist);  }
}
template <typename T>
void swap(T *m,T *n)
{  T temp;  temp=*m;  *m=*n;  *n=temp;
}
void Qsort(CodeMonkey *a,int l,int r)
{  int i,j;  string name;  i=l;  j=r;  name=a[i].name;  do{    while(i<=j&&a[j].name>name)j--;    while(i<=j&&a[i].name<name)i++;    if(i<=j){      swap(&a[i].name,&a[j].name);swap(&a[i].todolist,&a[j].todolist);swap(&a[i].sign,&a[j].sign);i++;    j--;    }  }while(i<=j);  if(l<j)Qsort(a,l,j);  if(i<r)Qsort(a,i,r);
}
CodeMonkey CM[1000000];
int main()
{  ProductDog PD;int n,add1,add,add2;cin>>n;add1=0;  while(add1<n)    {      CM[add1].creat(add1);    add1++;    }    Qsort(CM,0,add1-1);    cin>>n;    PD.creat(CM,n,add1-1);    add=0;    for(;add<add1;add++)  {      for(add2=0;add2<add1;add2++)      { if(add==CM[add2].turn_sign())        CM[add2].cout_todolist();      }    }  return 0;
}

1019. 程序猿和产品狗相关推荐

  1. PTA:程序猿和产品狗(c++ 友元)

    在公司里面,程序猿经常有一堆todolist要做,而这些todolist是产品经理分配给他们的.但是当程序员遇到不懂技术的产品狗时,就悲剧了.产品经理经常修改他们的todolist,比如:添加,减少他 ...

  2. 程序猿到产品狗的迅速转换

    从猿到狗的进化,已经慢慢脱离了人类了. 给大家说说我为什么转产品吧,其实可能和很多人想法不同,和之前的程序员交流,有一部分人会认为产品是一个很好的职位.为啥这么说呢,产品一般是对所在的项目对各个方面了 ...

  3. 小游戏“程序猿大战产品*那啥”

    致大神"浅墨",毛星云,网名「浅墨」,微软MVP,<Windows游戏编程之从零开始>作者. 不知还有多少人记得, 2021-12-13,知名游戏开发大神毛星云(网名「 ...

  4. 防止程序猿和前端狗打架的几条约定

    一个项目或者产品的出生,往往包含需求.开发.测试再到生产,不是前端一个人在战斗,而是一个团队,少则3-4人,多则十几人,那么问题来了,开发人员需要遵守哪些约定,才能不让程序猿和前端狗不打起来呢?    ...

  5. 从Java程序猿到产品经理

    作为一个程序猿,也许我是真的不太适合,思前想后,有一方面现实的压力,也有一部分内心的挣扎,最后选择change.我转行做产品也有相当长的一段时间了.其实在这段时间学习中,也对程序猿和产品经理这两个岗位 ...

  6. 不服来战!这才是产品汪与程序猿撕逼的正确方式

    问题背景:当你的产品内测时,这时候程序员看着那个功能或者交互很不爽,开始各种吐槽,紧接着一群程序员开始吐槽,有多不爽,有多鸡肋,有多麽....balabala..你该怎么办?(@PMCAFF会员CSQ ...

  7. 做为一名IT新人,必了解程序员与产品经理的恩怨情仇

    近日<产品经理和程序员打起来了>的消息被疯传. 通过这事件,我们需要了解与反思,产品经理与软件开发程序员到底应该如何配合,如何有效的合作,才达到共赢的状态? 何以至于要拔刀相向,兵戎相见? ...

  8. 30 个跟程序猿有关的成语

    猿来如此 指程序员通过调试终于找到 BUG 所在. 功成猿满 指项目大获成功,老板开始觉得程序猿人数太多,工作不够饱和. 左右逢猿 指需求评审会时,前后左右都是程序猿,舌战群猿,以一敌多的场面. 花好 ...

  9. OSChina 娱乐弹弹弹——程序猿专属幽默

    2019独角兽企业重金招聘Python工程师标准>>> 以下是关于程序员的一些笑话,据说看懂的人都还在加班中. 0.  老婆给当程序员的老公打电话:下班顺路买十个包子,如果看到卖西瓜 ...

最新文章

  1. layui导入 加载动画_厉害了!这个免费神器帮你无脑做施工动画
  2. python中os.system.获取输出信息_python中os.system()的返回值
  3. Intellij IDEA + Maven + Cucumber 项目 (三):简单解释RunCukesTest.java
  4. PHPUNIT 单元测试
  5. java并发练习之快乐影院
  6. python数据分析函数大全_Python常用数据分析函数集合
  7. The /usr/local/mysql/data directory is not owned by the 'mysql' to '_mysql' user
  8. 离散数学第二版傅彦课后题答案_青年大最新答案第十季第四期答案 完整版题目和答案分享[多图]...
  9. powerdesigner 显示窗口小工具栏
  10. 【IMU】BMI160 Driver分析及使用
  11. 用微信小程序发红包的两种方法
  12. 2021-08-27小白比记4
  13. python爬取微博内容_python如何抓取新浪微博的微博内容!
  14. 高校大数据专业教学实训资源解决方案
  15. Android 高仿腾讯旗下app的 皮肤加载技术
  16. 关于Ubuntu 无法正常关机的问题
  17. uniapp 如何将输入值转成大写
  18. 两个div右侧固定,左侧自适应屏幕
  19. linux cpu降频怎么设置,Android系统修改CPU降频温度阈值、修改CPU关内核温度阈值的方法...
  20. 【以太坊】什么是雷电网络 Raiden network

热门文章

  1. 解决Java飞行棋Bug 2020-12-05
  2. 微信管家源码自定义菜单失效
  3. 是否应该回馈一下CSDN?
  4. oracle认证ebs,Oracle EBS R12支持Oracle Database 11g
  5. 复活iPad mini 2
  6. 用 Kotlin 开发 Android 项目是一种什么样的感受?(二)
  7. PowerBuilder 透明静态文本框(statictext)
  8. Git操作之 git add 撤销、git commit 撤销
  9. 外链和友情链接的作用,以及对网站SEO优化的好处
  10. MapleSim CAD Toolbox实现CAD(NX, SOLIDWORKS, CATIA V5, Solid Edge, Pro/E等软件)模型到Modelica仿真模型和C代码的转换