题解 CF1392A 【Omkar and Password】
其实这个题目要从数学角度分析:
如果输入数据全一样,直接输出n就好了
如果不一样最小的长度只有可能为1
vector代码来啦:
#include <iostream>
#include <vector>
using namespace std;
vector <int> vec;
int main()
{
int n, k;
cin >> n;
for(int i = 1; i <= n; i++)
{
bool flag = true;
cin >> k;
vec.resize(k);
for(vector <int>::iterator it = vec.begin(); it != vec.end(); it++)
{
cin >> *it;
}
for(vector <int>::iterator it = vec.begin() + 1; it != vec.end(); it++)
{
if(*it != vec[0])
{
flag = false;
break;
}
}
if(flag)
{
cout << k << endl;
}
else
{
cout << "1\n";
}
}
return 0;
}
arr代码也有的哦:
#include <iostream>
#include <vector>
using namespace std;
int arr[200005];
int main()
{
int n, k;
cin >> n;
for(int i = 1; i <= n; i++)
{
bool flag = true;
cin >> k;
for(int i = 1; i <= k; i++)
{
cin >> arr[i];
}
for(int i = 1; i <= k; i++)
{
if(arr[i] != arr[1])
{
flag = false;
break;
}
}
if(flag)
{
cout << k << endl;
}
else
{
cout << "1\n";
}
}
return 0;
}
注意数组大小哦