日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【练习八 结构体(强化)编程题4. 看电影】

發布時間:2024/3/13 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【练习八 结构体(强化)编程题4. 看电影】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【問題描述】

? ? ? ?弗蘭大學正在舉辦一場重要的國際學術會議,出席會議的?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>using namespace std;struct movie{int audio;int caption;int sumA=0;int sumC=0;int I; }; int main() {int n,m,j,i;cin>>n;int*scientist=new int[n];for(j=0;j<n;j++){cin>>scientist[j];}cin>>m;movie * a=new movie[m];for(j=0;j<m;j++){cin>>a[j].audio;a[j].I=j+1;}for(j=0;j<m;j++){cin>>a[j].caption;}int audio=0,caption=0;for(j=0;j<n;j++){for(i=0;i<m;i++){if(a[i].audio==scientist[j]){a[i].sumA++;}}}for(j=0;j<n;j++){for(i=0;i<m;i++){if(a[i].caption==scientist[j]){a[i].sumC++;}}}int A=1,C=1;for(i=1;i<m;i++){for(j=0;j<i;j++){if(a[i].sumA>a[j].sumA){movie b=a[i];a[i]=a[j];a[j]=b;}}}for(i=1;i<m;i++){for(j=0;j<i;j++){if(a[i].sumC>a[j].sumC&&a[i].sumA==a[j].sumA){movie b=a[i];a[i]=a[j];a[j]=b;}}}for(i=0;i<m;i++){if(a[i].sumA==a[i+1].sumA){A++;}else{break;}}for(i=0;i<m;i++){if(a[i].sumC==a[i+1].sumC){C++;}else{break;}}int g=min(A,C);if(a[0].sumA==0&&a[0].sumC==0){cout<<"unsatisfied";}else{for(i=0;i<g;i++){cout<<a[i].I<<" ";}}return 0; }

總結

以上是生活随笔為你收集整理的【练习八 结构体(强化)编程题4. 看电影】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。