第十四届北京师范大学校赛 A题 check in

又到了一年一度的北京师范大学程序设计竞赛!本次比赛的负责人萌萌哒whalyzh同学要给大家发比赛账号。由于参赛队伍众多,面对长长的参赛名单,whalyzh同学表示压力山大。现在whalyzh同学实在忙不过来,就扔了一份参赛队伍的账号列表给你。为了确定给校内队伍颁发的各类奖项的名额,他需要知道一共有多少支校内队伍参加了比赛。

Input

第一行是一个正整数,表示测试数据的组数,

对于每组测试数据,

第一行是一个整数,表示队伍数量,

接下来行,每行是一个格式为"学校英文名缩写16-队伍编号"的字符串,表示队伍账号,保证学校英文名缩写只包含小写字母,编号是正整数且不含前导零,同一学校不同队伍的编号一定不同,来自不同学校的队伍的编号可能相同。

更多信息请参考样例。

Output

对于每组测试数据,输出一行,包含一个整数,表示参赛列表中本校(即学校英文名缩写是"bnu"的队伍)队伍的数量。

Sample Input

2
10
bac16-1
bit16-1
bitss16-1
bjfu16-1
bjtu16-1
bnu16-1
buaa16-1
cuc16-1
cugb16-1
google16-1
5
bnu16-1
bnu16-3
bnu16-5
bnu16-2
bnu16-4

Sample Output

1
5

Hint

对于第一组样例,只有"bnu16-1"是校内队伍。

对于第二组样例,所有队伍都是校内队伍。


题解:只要搜到bnu-16后就行了,不需要去重(之前以为需要);

AC代码:

#include <bits/stdc++.h>
using namespace std ;
char dp[1010];
int solve[1010];
int main()
{
    int t ;
    cin>>t;
    while(t--)
    {
        memset(dp,0,sizeof(dp));
        memset(solve,0,sizeof(solve));
        int n ;
        int flag = 0 ;
        int p = 0 ;
        cin>>n;
        while(n--)
        {
            cin>>dp;
            int len = strlen(dp);
            if(dp[0]=='b'&&dp[1]=='n'&&dp[2]=='u'&&dp[3]=='1'&&dp[4]=='6')
            {
                int m = len - 6;
                for(int i = 6 ; i<len ; i++)
                {
                    m--;
                    flag += (dp[i]-'0')*pow(10,m);
                }
                solve[p]=flag;
                p++;
                flag = 0 ;
            }
            else continue;
        }
        sort(solve,solve+p);
        int daan = unique(solve,solve+p) - solve;
        cout<<daan<<endl;
    }
    return 0 ;
}



你可能感兴趣的:(第十四届北京师范大学校赛 A题 check in)