网站用户体验存在问题,宁波专业网站推广平台便宜,教人如何做吃的网站,wordpress邮箱备份【问题描述】 湖南大学正在举办一场重要的国际学术会议#xff0c;出席会议的 n 位科学家来自不同的国家#xff0c;每位科学家都只熟悉一种语言#xff0c;为方便起见#xff0c;世界上所有的语言用1~1000的数字编号来列出。 晚上#xff0c;主办方安排所有科学家去看电影…【问题描述】 湖南大学正在举办一场重要的国际学术会议出席会议的 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
【样例说明】 【评分标准】
我的做法只循环一次线性做法考试的时候不推荐这么做。
#includeiostream
#includevector
using namespace std;
struct movie
{int b,c;int c_b0,c_c0;
}v[1005];
int main()
{int n,g[1005],m,m_b-1,m_c-1,t_b-1,t_c-1,tot0;vectorintp;cinn;for(int i0;in;i) cing[i];cinm;for(int i0;im;i) cinv[i].b;for(int i0;im;i) cinv[i].c;for(int i0;im;i)//电影循环 {for(int j0;jn;j){if(g[j]v[i].b) v[i].c_b;if(g[j]v[i].c) v[i].c_c; }if(m_bv[i].c_b) //找到更多非常满意的科学家了重新开始记录数据 {m_bv[i].c_b,t_cv[i].c_c;m_c-1,tot0;//m_c初始化 ,tot计数也初始化或者不计数也行用vector内置函数 .p.clear();//容器初始化 if(t_cm_c){m_ct_c;//m_c赋值下一次进行比较。tot; p.push_back(i);//对i记录。 }}else if(m_bv[i].c_b){t_cv[i].c_c;if(t_cm_c) p.push_back(i),tot;else if(t_cm_c)//又更多的基本满级科学家则重新记录。 {p.clear();tot1;p.push_back(i);}}}if(m_b0m_c0)coutunsatisfied;else{for(int i0;itot;i)coutp[i]1 ;}
}