湖南大学 实验八 看电影

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 湖南大学 实验八 看电影

【问题描述】


      湖南大学正在举办一场重要的国际学术会议,出席会议的 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"。


【样例输入】

#include <iostream>
using namespace std;
class sci {
public:
  int lan;
};
class moive {
public:
  int hao;
  int fc = 0;
  int bj = 0;
  int sound=0;
  int eye=0;
  int  b(int kxj) {
    {
      if (sound == kxj) {
        return 2;
      }if (eye == kxj)
        return 1;
      else
        return 0;
    }
  }
};
int main() {
  int n;
  cin >> n;
  sci* a = new sci[n];
  for (int i = 0; i < n; i++) {
    cin >> a[i].lan;
  }
  int m;
  cin >> m;
  moive* b = new moive[m];
  for (int i = 0; i < m; i++) {
    cin >> b[i].sound;
    b[i].hao = i + 1;
  }
  for (int i = 0; i < m; i++) {
    cin >> b[i].eye;
  }
  for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++) {
      if (b[i].b(a[j].lan) == 2)
        b[i].fc++;
      if (b[i].b(a[j].lan) == 1)
        b[i].bj++;
    }
  }
  int zuida = 1;
  for (int i = 1; i < m; i++) {
    if (b[i].fc > b[zuida - 1].fc)
      zuida = b[i].hao;
    if (b[i].fc == b[zuida-1].fc) {
      if (b[i].bj >= b[zuida-1].bj && b[i].bj!=0)
        zuida = b[i].hao;
      if (b[i].bj < b[zuida-1].bj)
        zuida = b[zuida-1].hao;
    }
  }
  if (zuida == 0||(b[zuida-1].fc==0&&b[zuida-1].bj==0)) {
    cout << "unsatisfied" << endl;
    return 0;
  }
  int* c = new int[m];
  c[0] = zuida;
  int u = 0;
  int uuu=0;
  for (int i = 0; i < m; i++) {
    if (i != zuida - 1)
    {
      if (b[zuida - 1].fc==b[i].fc && b[zuida - 1].bj == b[i].bj) {
        u++;
        c[u] = i + 1;
      }
    }
  }
  for (int i = 0; i <= u; i++) {
    cout << c[i] << " ";
  }
  delete[]b;
  delete[]a;
  delete[]c;
  return 0;
}
相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
6月前
|
数据建模
R语言网络分析友谊悖论案例
R语言网络分析友谊悖论案例
R语言网络分析友谊悖论案例
|
Unix 索引
生信教程 | 基于PSMC估计有效群体大小
生信教程 | 基于PSMC估计有效群体大小
288 0
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT最强专业学习资料集锦
本文旨在整理一份可供参考和学习的专业ChatGPT相关资料,包括ChatGPT相关论文、Github项目、以及当前市场上出现的ChatGPT相关产品等。
ChatGPT最强专业学习资料集锦
|
机器学习/深度学习 人工智能 算法
【周末闲谈】AI作图,你真的了解它吗?
【周末闲谈】AI作图,你真的了解它吗?
142 0
|
机器学习/深度学习 Shell 图形学
3张图片生成一个手办3D模型!南加州大学华人博士提出新模型NeROIC,更真实!
3张图片生成一个手办3D模型!南加州大学华人博士提出新模型NeROIC,更真实!
185 0
|
监控 数据处理 开发工具
电子设计竞赛作品设计步骤
电子设计竞赛作品设计步骤
120 0
电子设计竞赛作品设计步骤
|
弹性计算 运维 监控
实战案例—南瓜电影 | 学习笔记
快速学习实战案例—南瓜电影
|
移动开发 小程序 JavaScript
天猫精灵之高分电影推荐
天猫精灵之高分电影推荐
天猫精灵之高分电影推荐
|
机器学习/深度学习 缓存 负载均衡
豆瓣评分9.5,哈佛、斯坦福、普林斯顿等都在用的算法经典教材
  先看看作者吧,Jon Kleinberg是美国国家科学院(NAS)、美国国家工程院(NAE)、美国人文与科学院(AAAS)三料院士,在计算机科学领域是“传说级”的人物。而且他还获得过国际数学家大会颁发“奈望林纳奖”,这个奖是数学家大会为了表彰信息科学方面的重要数学贡献而设的。——来自豆瓣
365 0
下一篇
无影云桌面