#include <iostream>
using namespace std;
class qingwa {
public:
int a11,a2,a3,a4;
void kexuejia(){
cin>>a11;
}
int *a;
void language(){
a=(int *)malloc(sizeof(int)*a11);
for(int i=0;i<a11;i++){
cin>>a[i];
}
}
void dianying(){
cin>>a3;
}
int **a1;
void yin(){
a1=(int**)malloc(sizeof(int)*3);
for(int i=0;i<3;i++){
a1[i]=(int *)malloc(sizeof(int)*a3);
}
for(int i=0;i<a3;i++){
cin>>a1[0][i];
}
}
void zi(){
for(int i=0;i<a3;i++){
cin>>a1[1][i];
}
}
int ** b;
int k1;
void jisuan(){
k1=0;
b=(int **)malloc(sizeof(int)*a3);
for(int i=0;i<a3;i++){
b[i]=(int *)malloc(sizeof(int)*(a11+3));
}
for(int k=0;k<a11;k++){
for(int i=0;i<a3;i++){
if(a1[0][i]==a[k]){
k1+=2;
}
if(a1[1][i]==a[k]){
k1+=1;
}
b[i][k]=k1;//横行为电影,列为不同的人
//思路大概是用数组矩阵记录每台电影对于不同人的分数,最后计算出2分的数量,填在a11列,计算出1分填在a11+1列
k1=0;
}
}
}
void kong(){
for(int i=0;i<a3;i++){
b[i][a11+1]=0;
b[i][a11]=0;
b[i][a11+2]=0;
}
}
int j;
int j1;
void jiansuo (){
j=0;
j1=0;
for(int i=0;i<a3;i++){
for(int i1=0;i1<a11;i1++){
if(b[i][i1]==1)
{
b[i][a11+2]++;
}
if(b[i][i1]==2)
{
b[i][a11+1]++;
}
if(b[i][i1]==3)
{
b[i][a11]++;
}
}
}
}
int * paixu(int *a,int u){
for(int i=0;i<u-1;i++){
if(a[i]>a[i+1]){
int temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
return a;
}
void show (){
int *p =(int *)malloc(sizeof(int)*a3);
int *q =(int *)malloc(sizeof(int)*a3);
int *w =(int *)malloc(sizeof(int)*a3);
int *p1;
int *q1;
int *w1;
for (int i=0;i<a3;i++){
p[i]=b[i][a11];
q[i]=b[i][a11+1];
w[i]=b[i][a11+2];
}
p1=this->paixu(p,a3);
q1=this->paixu(q,a3);
w1=this->paixu(w,a3);
if(p1[a3-1]==0&&q1[a3-1]==0&&w1[a3-1]==0){
cout<<"unsatisfied"<<endl;
return ;
}
if(p1[a3-1]>0){
for(int u1=0;u1<a3;u1++){
if(p1[a3-1]==p[u1]){
cout<<u1+1<<" ";
}
}
return ;
}
if(p1[a3-1]==0&&q1[a3-1]>0){
for(int u1=0;u1<a3;u1++){
if(q1[a3-1]==q[u1]){
cout<<u1+1<<" ";
}
}
return;
}
if(p1[a3-1]==0&&q1[a3-1]==0&&w1[a3-1]>0){
for(int u1=0;u1<a3;u1++){
if(w1[a3-1]==w[u1]){
cout<<u1+1<<" ";
}
}
return;
}
}
};
int main (){
qingwa aaa;
aaa.kexuejia();
aaa.language();
aaa.dianying();
aaa.yin();
aaa.zi();
aaa.jisuan();
aaa.kong();
aaa.jiansuo();
aaa.show();
}
//无类
#include <iostream>
using namespace std;
int * paixu(int *a,int u){
for(int i=0;i<u-1;i++){
if(a[i]>a[i+1]){
int temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
return a;
}
int main (){
int a11,a2,a3,a4;
cin>>a11;
int *a;
a=(int *)malloc(sizeof(int)*a11);
for(int i=0;i<a11;i++){
cin>>a[i];
}
cin>>a3;
int **a1;
a1=(int**)malloc(sizeof(int)*3);
for(int i=0;i<3;i++){
a1[i]=(int *)malloc(sizeof(int)*a3);
}
for(int i=0;i<a3;i++){
cin>>a1[0][i];
}
for(int i=0;i<a3;i++){
cin>>a1[1][i];
}
int ** b;
int k1;
k1=0;
b=(int **)malloc(sizeof(int)*a3);
for(int i=0;i<a3;i++){
b[i]=(int *)malloc(sizeof(int)*(a11+3));
}
for(int k=0;k<a11;k++){
for(int i=0;i<a3;i++){
if(a1[0][i]==a[k]){
k1+=2;
}
if(a1[1][i]==a[k]){
k1+=1;
}
b[i][k]=k1;//横行为电影,列为不同的人
//思路大概是用数组矩阵记录每台电影对于不同人的分数,最后计算出2分的数量,填在a11列,计算出1分填在a11+1列
k1=0;
}
}
for(int i=0;i<a3;i++){
b[i][a11+1]=0;
b[i][a11]=0;
b[i][a11+2]=0;
}
int j;
int j1;
j=0;
j1=0;
for(int i=0;i<a3;i++){
for(int i1=0;i1<a11;i1++){
if(b[i][i1]==1)
{
b[i][a11+2]++;
}
if(b[i][i1]==2)
{
b[i][a11+1]++;
}
if(b[i][i1]==3)
{
b[i][a11]++;
}
}
}
int *p =(int *)malloc(sizeof(int)*a3);
int *q =(int *)malloc(sizeof(int)*a3);
int *w =(int *)malloc(sizeof(int)*a3);
int *p1;
int *q1;
int *w1;
for (int i=0;i<a3;i++){
p[i]=b[i][a11];
q[i]=b[i][a11+1];
w[i]=b[i][a11+2];
}
p1= paixu(p,a3);
q1= paixu(q,a3);
w1= paixu(w,a3);
if(p1[a3-1]==0&&q1[a3-1]==0&&w1[a3-1]==0){
cout<<"unsatisfied"<<endl;
return 0;
}
if(p1[a3-1]>0){
for(int u1=0;u1<a3;u1++){
if(p1[a3-1]==p[u1]){
cout<<u1+1<<" ";
}
}
return 0 ;
}
if(p1[a3-1]==0&&q1[a3-1]>0){
for(int u1=0;u1<a3;u1++){
if(q1[a3-1]==q[u1]){
cout<<u1+1<<" ";
}
}
return 0;
}
if(p1[a3-1]==0&&q1[a3-1]==0&&w1[a3-1]>0){
for(int u1=0;u1<a3;u1++){
if(w1[a3-1]==w[u1]){
cout<<u1+1<<" ";
}
}
return 0;
}
return 0;
}