Description
Input
Output
Sample Input
10 3 1 1 2 3 1 3 3 2 2 2
Sample Output
2
Hint
Sourcek
题解:在给定队伍人数中,找出其中有一个不同人数的队伍,并输出队伍的ID。
由于时间限制运用stl vector 来存放数据
然后对存放的数据进行 sort 排序
已经规定的队伍人数K。
遍历向量数组判断第i个与第i+k-1是否相等,相等i=i+k,不等的话 即输出当前的v[i]即为结果。
遍历向量数组判断第i个与第i+k个是否相等,不等i=i+k继续循环,相等即输出当前v[i]即为结果。
下面见代码。
#include <cstdio>
#include <iostream>
#include<cstring>
#include <map>
#include <algorithm>
#define maxn 1000007
#define ll long long
#include <vector>
using namespace std;
int main()
{
vector<int> a;
vector<int>:: iterator it;
int N,K,tmp;
scanf("%d%d",&N,&K);
for (int i=0;i<N;i++)
{
scanf("%d",&tmp);
a.push_back(tmp);
}
sort(a.begin(),a.end());
for(it = a.begin();it!=a.end();)
{
if (*it == *(it+K-1))
{
it +=K;
}
else
{
cout << *it;
return 0;
}
}
for (it = a.begin();it!=a.end();)
if (*it != *(it+K))
{
it+=K;
}
else{
//count(it,it+K,*it);
cout << *it;
return 0;
}
}