题目
在衣柜抽屉中杂乱无章地放着种不同颜色的袜子,其中第种颜色的袜子有a_i只。小招喵现在正着急去参加一场宴会,但是小招喵是一个色盲,所以无法分辨自己将要穿的袜子是不是同一颜色的,因此他随手抓了一把袜子,打算带到牛牛家让牛牛帮忙。
现在的问题是,最少要从抽屉中取出多少只袜子才能保证其中一定有两只可以配成颜色相同的一双?
思路
情况1:全是单只袜子,返回-1.
情况2:统计所有袜子的种类+1;
动态数组
int *a=new int[n];
……
delete[] a;
代码
#include <iostream>
using namespace std;
int main()
{
int t;
cin >> t;
while (t--)
{
int n;
cin >> n;
//vector <int> a;
int* a = new int[n];
int num=0;
int flage=0;
for (int i = 0; i < n; i++)
{
cin >> a[i];
if (a[i] > 1)
{
num++;
flage = 1;
}
if(a[i]==1)
{
num++;
}
}
if (flage)
{
cout << num+1<<endl;
}
else {
cout << -1<<endl;
}
}
}