【问题描述】
某大学正在举办一场重要的国际学术会议,出席会议的 n 位科学家来自不同的国家,每位科学家都只熟悉一种语言,为方便起见,世界上所有的语言用1~1000的数字编号来列出。
晚上,主办方安排所有科学家去看电影,电影院里有 m 部电影,每部电影可以用两个不同的整数来描述,即音频语言和字幕语言的编号。看电影的科学家,如果他熟悉电影的音频语言,他会非常高兴,如果他熟悉字幕的语言,他基本上满意,如果他两种都不熟悉,他会感到不满意(请注意,每部电影的音频语言和字幕语言总是不同的)。
科学家们决定一起去看同一部电影。你必须帮助他们选择电影,使得非常高兴的科学家的数量是最大的,如果有多部这样的电影,在其中选择能使基本满意的科学家的数量最大,如果还有多部,则全部输出。如果没有这样的电影,则输出"unsatisfied"。

【输入形式】
输入的第一行为一个正整数 n (1 ≤ n ≤ 200000) ,表示科学家的数量。
第二行为 n 个正整数a1、a2、…、an (1 ≤ ai ≤ 1000),其中ai 表示第 i 位科学家熟悉的语言编号。
第三行包含一个正整数m(1 ≤ m ≤ 200000),表示电影院里的电影数量,编号从1~m。
第四行包含 m 个正整数 b1, b2, …, bm (1 ≤ bj ≤ 1000),其中 bj 表示第 j 部电影的音频语言。
第五行包含 m 个正整数 c1, c2, …, cm (1 ≤ cj ≤ 1000),其中 cj 表示第 j 部电影的字幕语言。
输入保证 bj ≠ cj 。

【输出形式】
输出为若干整数,从小到大,表示科学家们可以去选择去看的电影的编号。如果没有这样的电影,则输出"unsatisfied"。

【样例输入】
3
2 3 2
2
3 2
2 3

【样例输出】
2

【示例代码】

#include<iostream>
#include<algorithm>
using namespace std;
struct Movies
{int yin;//音频语言int zimu;//字幕语言
};
struct Scientist
{int lang;//母语
};
struct Language//用于计数:每部电影的音频语言和字幕语言各为多少科学家所熟悉
{int yin;//音频int zimu;//字幕
};
struct Last//存储非常高兴的科学家数量最大的电影编号及其对应的字幕语言
{int bh;int zimu;
};
int main ()
{int n;cin>>n;Scientist a[n];for(int i=0;i<n;i++)//输入每个科学家熟悉的语言{cin>>a[i].lang;}int m;cin>>m;Movies p[m];for(int i=0;i<2;i++)//输入每部电影的音频语言和字幕语言{if(i==0){for(int j=0;j<m;j++){cin>>p[j].yin;}}if(i==1){for(int j=0;j<m;j++){cin>>p[j].zimu;}}}int f=0;for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(a[i].lang==p[j].yin||a[i].lang==p[j].zimu) {f=1;}//先判断有没有可看的电影}}if(f==0) {cout<<"unsatisfied"<<endl;}else{Language l[m]={0,0};//用于计数:每部电影的音频语言和字幕语言各为多少科学家所熟悉int b[m]={0},c[m]={0};//作用和l[m]数组一样,但为了能排序而分成两个数组,方便后面找出另科学家非常高兴的方案for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(p[i].yin==a[j].lang) {l[i].yin++;b[i]++;}}for(int j=0;j<n;j++){if(p[i].zimu==a[j].lang) {l[i].zimu++;c[i]++;}}}sort(b,b+m);sort(c,c+m);if(b[m-1]!=b[m-2]){for(int i=0;i<m;i++){if(l[i].yin==b[m-1]) {cout<<i+1<<endl;}}}else if(b[m-1]==b[m-2]){Last q[m];//用于存储最后的几种方案,即非常高兴的科学家数量一样int t=0,d[m];for(int i=0;i<m;i++){if(l[i].yin==b[m-1]){q[t].bh=i+1;q[t].zimu=l[i].zimu;d[t]=l[i].zimu;t++;}}sort(d,d+t);//排序,使电影编号按基本满意的科学家数量由大到小的顺序输出for(int j=0;j<t;j++){if(q[j].zimu==d[t-1]){cout<<q[j].bh<<' ';}}}cout<<endl;}return 0;
}

看电影(C++结构体练习题)相关推荐

  1. 青蛙与蚊子(C++结构体练习题)

    青蛙与蚊子(C++结构体练习题) [问题描述] 有 n 只青蛙位于坐标轴 OX 上,对于每只青蛙,有两个已知值 xi.ti,表示第 i 只青蛙在坐标的位置(各不相同)以及它的舌头的长度.同样有 m 只 ...

  2. 看这里看这里:结构体的超级详细讲解

    结构体 结构体在C语言中识非常重要的知识,想要学好C语言就必须学好结构体,那么什么是结构体呢?结构体是一些值的集合,这些值称为成员变量,而结构体的每个成员可以是不同类型的变量: 一.结构体的声明: 1 ...

  3. c语言结构引用6,C语言6结构体练习题6

    第六章 结构体 1.下面对结构变量的叙述中错误的是 A.相同类型的结构变量间可以相互赋值 B.通过结构变量,可以任意引用它的成员 C.结构变量中某个成员与这个成员类型相同 的简单变量间可相互赋值 D. ...

  4. c语言结构体简单试题,C语言6结构体练习题6

    第六章 结构体 1.下面对结构变量的叙述中错误的是 A.相同类型的结构变量间可以相互赋值 B.通过结构变量,可以任意引用它的成员 C.结构变量中某个成员与这个成员类型相同 的简单变量间可相互赋值 D. ...

  5. c语言作业 结构体,C语言之结构体练习题.doc

    9.3.1 选择题2. 有以下程序输出结果是( ). #include struct stu { int num; char name[10]; int age; }; void fun(struct ...

  6. 从内存角度深入看结构体(window/linux)大小

    今天我们来看一下windows(32, 64)(dev-c++,vc),linux(32, 64)不同系统下, 它们求结构体大小时,编译器到底给它们分配了哪些内存,又为什么这样分配,为啥子编译器给它们 ...

  7. Go语言全栈开发:结构体

    文章目录 类型别名和自定义类型 结构体 练习题 Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象 ...

  8. 数组、结构体和共用体的长度计算?

    数组.结构体和共用体的长度计算? 运算符sizeof可以计算出给定类型的大小,对于32位系统来说,sizeof(char) = 1; sizeof(int) = 4.基本数据类型的大小很好计算,我们来 ...

  9. 获取另一个驱动的设备结构体_Linux 驱动开发 / 设备模型快速入门

    背 景 Read the fucking source code!  --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版 ...

最新文章

  1. predictor = dlib.shape_predictor()关键点预测器用法
  2. You need to use a Theme.AppCompat theme (or descendant) with this activity解决方法
  3. 用jquery修改默认的单选框radio或者复选框checkbox选择框样式
  4. 阿里云前端周刊 - 第 13 期
  5. boost::container实现双端队列选项的测试程序
  6. html基于web2.0标准,晕倒:“用web2.0来制作符合标准的页面”
  7. Date - Java处理日期和时间
  8. gradle构建_指定Gradle构建属性
  9. LSTM和GRU的解析从未如此通俗易懂(动图)
  10. java当前时间查询,Java实现查询记录的时间相对于当前时间
  11. 为什么败者树的访问外存次数要比胜者树少_为什么说蒙地卡罗搜索树MCTS是AlphaZero的核心?[AlphaZero理论篇之三]...
  12. 理解Java虚拟机体系结构
  13. bearer token头_接口认证方式:Bearer Token
  14. RHEL常用Linux命令操作 第四章实验报告
  15. Java 网络编程:(七)UDP网络编程
  16. Ubuntu20.04服务器版本如何使用命令从U盘拷贝文件到服务器
  17. 让吹牛都能全世界最棒
  18. Linux配置桥接网络模式
  19. 如何修改电脑用户文件名
  20. 微软surface屏幕测试软件,Soomal作品 - Microsoft 微软 Surface Go平板电脑屏幕测评报告 [Soomal]...

热门文章

  1. 动态恶意软件分析工具介绍
  2. 关闭VirtualBox检查更新功能
  3. 求助ambari-server报错early EOF问题
  4. 苹果电脑能玩什么游戏_什么是苹果的游戏中心,您应该使用它吗?
  5. CC2530芯片基础实验
  6. 野生程序员的折腾—寻梦回归“一起帮”(三)
  7. 高通公司全球首席商务官Jim Cathey先生一行莅临美格智能参观指导
  8. mac 连接阿里云服务 ssh 一会自动断开
  9. 一学就会魔法书-五笔字型视频教程
  10. 处理 Makefile: recipe for target ‘xxxxx‘ failed 错误