表題
pata1063の
トピックアイデア
入力データの各セットのためには、店に容器を取るように設定され、画面重複したエントリに加えて、両方の容器はトラバースに高い繰り返し数に記録ローのデータから計算する必要があります。
参照コード
#include<iostream>
#include<set>
using namespace std;
set <int> a[50];
int main()
{
int n=0,m=0,k=0,l1=0,l2=0,s1=0,s2=0,t=0,b=0;
cin>>n;
for(int i=0;i<n;i++)
{
scanf("%d",&m);
for(int j=0;j<m;j++)
{
scanf("%d",&t);
a[i].insert(t);
}
}
scanf("%d",&k);
for(int i=0;i<k;i++)
{
b=0;
scanf("%d %d",&l1,&l2);
s1=a[l1-1].size();
s2=a[l2-1].size();
set<int>::iterator it1=a[l1-1].begin();
set<int>::iterator it2=a[l2-1].begin();
while(it1!=a[l1-1].end()&&it2!=a[l2-1].end())
{
if(*it1>*it2)
it2++;
else if(*it1<*it2)
*it1++;
else
{
b++;
*it1++;
*it2++;
}
}
double bs=1.0*(s1+s2-b);
double mu=b*1.0;
printf("%.1lf%%",mu/bs*100);
if(i<k-1)
printf("\n");
}
return 0;
}