【发布时间】:2026-01-03 15:00:01
【问题描述】:
Codeforces 问题 373A-http://codeforces.com/problemset/problem/373/A
我尝试在对数组排序后检查给定条件,而不是多个 if 语句来计算每个数字的元素数。我得到第一个测试用例的错误输出(在问题的链接中给出)。什么我的方法有问题吗?我应该对我的解决方案进行哪些更改。
我的解决方案:
#include<iostream>
#include<cstring>
using namespace std;
int k,i,j,a;
char panel[17],temp,output[4];
int main()
{
cin>>k;
for(i=0;i<16;i++)
cin>>panel[i];
for(i=0;i<16;i++) //Bubble sort.
{
for(j=0;j<(15-i);j++)
{
if(panel[j]>panel[j+1])
{
temp=panel[j+1];
panel[j+1]=panel[j];
panel[j]=temp;
}
}
}
a=1;
strcpy(output,"YES");
for(i=0;i<16;i++)
{
if(panel[i]==panel[i+1])
++a;
else
a=1;
if(a>(2*k));
{
strcpy(output,"NO");
break;
}
}
cout<<output;
}
【问题讨论】: