題目描述
為豐富男生節(jié)活動(dòng),貴系女生設(shè)置彩票抽獎(jiǎng)環(huán)節(jié),規(guī)則如下:
1、每張彩票上印有7個(gè)各不相同的號(hào)碼,且這些號(hào)碼的取值范圍為[1, 33];
2、每次在兌獎(jiǎng)前都會(huì)公布一個(gè)由七個(gè)互不相同的號(hào)碼構(gòu)成的中獎(jiǎng)號(hào)碼;
3、共設(shè)置7個(gè)獎(jiǎng)項(xiàng),特等獎(jiǎng)和一等獎(jiǎng)至六等獎(jiǎng)。兌獎(jiǎng)規(guī)則如下:
特等獎(jiǎng):要求彩票上的7個(gè)號(hào)碼都出現(xiàn)在中獎(jiǎng)號(hào)碼中;
一等獎(jiǎng):要求彩票上的6個(gè)號(hào)碼出現(xiàn)在中獎(jiǎng)號(hào)碼中;
二等獎(jiǎng):要求彩票上的5個(gè)號(hào)碼出現(xiàn)在中獎(jiǎng)號(hào)碼中;
……
六等獎(jiǎng):要求彩票上的1個(gè)號(hào)碼出現(xiàn)在中獎(jiǎng)號(hào)碼中;
注:不考慮號(hào)碼出現(xiàn)的順序,例如若中獎(jiǎng)號(hào)碼為23 31 1 14 19 17 18,則彩票12 8 9 23 1 16 7由于其中有兩個(gè)號(hào)碼(23和1)出現(xiàn)在中獎(jiǎng)號(hào)碼中,所以該彩票中了五等獎(jiǎng)。
現(xiàn)已知中獎(jiǎng)號(hào)碼和李華買的若干彩票的號(hào)碼,請(qǐng)你寫一個(gè)程序判斷他的彩票中獎(jiǎng)情況。
數(shù)據(jù)規(guī)模和約定
100%的數(shù)據(jù)n< =100000。
輸入
第一行一個(gè)正整數(shù)n,表示彩票數(shù)量,第二行7個(gè)整數(shù),表示中獎(jiǎng)號(hào)碼,下面n行每行7個(gè)整數(shù),描述n張彩票。
輸出
7個(gè)空格隔開(kāi)的數(shù)字,第1個(gè)數(shù)字表示特等獎(jiǎng)的中獎(jiǎng)張數(shù),第2個(gè)數(shù)字表示一等獎(jiǎng)的中獎(jiǎng)張數(shù),第3個(gè)數(shù)字表示二等獎(jiǎng)的中獎(jiǎng)張數(shù)……第7個(gè)數(shù)字表示六等獎(jiǎng)的中獎(jiǎng)張數(shù)。
樣例輸入
3
1 2 3 4 5 6 7
11 12 13 14 15 16 17
12 13 14 15 16 17 18
8 7 10 9 31 30 29
樣例輸出
0 0 0 0 0 0 1
提示
C語(yǔ)言在線學(xué)習(xí)平臺(tái)微信號(hào)dotcpp
來(lái)源
算法提高
#include<iostream>
#include<set>
#include<vector>
using namespace std;
int sum,res[10];
set<int>box;
int main(void)
{
int n;
cin>>n;
for(int i=1;i<=7;i++)
{
int x;
cin>>x;
box.insert(x);
}
for(int i=1;i<=n;i++)
{
int ans=0,a;
for(int k=1;k<=7;k++)
{
cin>>a;
if(box.find(a)!=box.end()) ans++;
}
res[ans]++;
}
for(int i=7;i>=1;i--)
{
cout<<res[i];
if(i!=1) cout<<" ";
}
return 0;
}