1019. 程序猿和产品狗
在公司里面,程序猿经常有一堆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
#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. 程序猿和产品狗相关推荐
- PTA:程序猿和产品狗(c++ 友元)
在公司里面,程序猿经常有一堆todolist要做,而这些todolist是产品经理分配给他们的.但是当程序员遇到不懂技术的产品狗时,就悲剧了.产品经理经常修改他们的todolist,比如:添加,减少他 ...
- 程序猿到产品狗的迅速转换
从猿到狗的进化,已经慢慢脱离了人类了. 给大家说说我为什么转产品吧,其实可能和很多人想法不同,和之前的程序员交流,有一部分人会认为产品是一个很好的职位.为啥这么说呢,产品一般是对所在的项目对各个方面了 ...
- 小游戏“程序猿大战产品*那啥”
致大神"浅墨",毛星云,网名「浅墨」,微软MVP,<Windows游戏编程之从零开始>作者. 不知还有多少人记得, 2021-12-13,知名游戏开发大神毛星云(网名「 ...
- 防止程序猿和前端狗打架的几条约定
一个项目或者产品的出生,往往包含需求.开发.测试再到生产,不是前端一个人在战斗,而是一个团队,少则3-4人,多则十几人,那么问题来了,开发人员需要遵守哪些约定,才能不让程序猿和前端狗不打起来呢? ...
- 从Java程序猿到产品经理
作为一个程序猿,也许我是真的不太适合,思前想后,有一方面现实的压力,也有一部分内心的挣扎,最后选择change.我转行做产品也有相当长的一段时间了.其实在这段时间学习中,也对程序猿和产品经理这两个岗位 ...
- 不服来战!这才是产品汪与程序猿撕逼的正确方式
问题背景:当你的产品内测时,这时候程序员看着那个功能或者交互很不爽,开始各种吐槽,紧接着一群程序员开始吐槽,有多不爽,有多鸡肋,有多麽....balabala..你该怎么办?(@PMCAFF会员CSQ ...
- 做为一名IT新人,必了解程序员与产品经理的恩怨情仇
近日<产品经理和程序员打起来了>的消息被疯传. 通过这事件,我们需要了解与反思,产品经理与软件开发程序员到底应该如何配合,如何有效的合作,才达到共赢的状态? 何以至于要拔刀相向,兵戎相见? ...
- 30 个跟程序猿有关的成语
猿来如此 指程序员通过调试终于找到 BUG 所在. 功成猿满 指项目大获成功,老板开始觉得程序猿人数太多,工作不够饱和. 左右逢猿 指需求评审会时,前后左右都是程序猿,舌战群猿,以一敌多的场面. 花好 ...
- OSChina 娱乐弹弹弹——程序猿专属幽默
2019独角兽企业重金招聘Python工程师标准>>> 以下是关于程序员的一些笑话,据说看懂的人都还在加班中. 0. 老婆给当程序员的老公打电话:下班顺路买十个包子,如果看到卖西瓜 ...
最新文章
- layui导入 加载动画_厉害了!这个免费神器帮你无脑做施工动画
- python中os.system.获取输出信息_python中os.system()的返回值
- Intellij IDEA + Maven + Cucumber 项目 (三):简单解释RunCukesTest.java
- PHPUNIT 单元测试
- java并发练习之快乐影院
- python数据分析函数大全_Python常用数据分析函数集合
- The /usr/local/mysql/data directory is not owned by the 'mysql' to '_mysql' user
- 离散数学第二版傅彦课后题答案_青年大最新答案第十季第四期答案 完整版题目和答案分享[多图]...
- powerdesigner 显示窗口小工具栏
- 【IMU】BMI160 Driver分析及使用
- 用微信小程序发红包的两种方法
- 2021-08-27小白比记4
- python爬取微博内容_python如何抓取新浪微博的微博内容!
- 高校大数据专业教学实训资源解决方案
- Android 高仿腾讯旗下app的 皮肤加载技术
- 关于Ubuntu 无法正常关机的问题
- uniapp 如何将输入值转成大写
- 两个div右侧固定,左侧自适应屏幕
- linux cpu降频怎么设置,Android系统修改CPU降频温度阈值、修改CPU关内核温度阈值的方法...
- 【以太坊】什么是雷电网络 Raiden network
热门文章
- 解决Java飞行棋Bug 2020-12-05
- 微信管家源码自定义菜单失效
- 是否应该回馈一下CSDN?
- oracle认证ebs,Oracle EBS R12支持Oracle Database 11g
- 复活iPad mini 2
- 用 Kotlin 开发 Android 项目是一种什么样的感受?(二)
- PowerBuilder 透明静态文本框(statictext)
- Git操作之 git add 撤销、git commit 撤销
- 外链和友情链接的作用,以及对网站SEO优化的好处
- MapleSim CAD Toolbox实现CAD(NX, SOLIDWORKS, CATIA V5, Solid Edge, Pro/E等软件)模型到Modelica仿真模型和C代码的转换