D - Cameras Gym - 101291D (坑)
作者:互联网
这个方法卡在了42test;
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int a,b,c,i,j,sum=0,d,k,g;
int n[100010];
cin >> a >> b >> c;
memset(n,0,sizeof(n));
for(i=1; i<=b; i++)
{
cin >> d;
n[d]=1;
}
g=0;
for(i=1; i<=a-c+1;i++)
{
k=0;
for(j=i; j<=i+c-1; j++)
{
if(n[j]==1)
{
if(k==0)
{
g=j;
}
k++;
}
}
if(k<2)
{
if(k==0)
{
n[i+c-1]=1;
n[i+c-2]=1;
sum=sum+2;
i=i+c-2;
}
if(k==1)
{
if(n[i+c-1]!=1)
{
n[i+c-1]=1;
}
else
{
n[i+c-2]=1;
}
sum=sum+1;
i=g;
}
}
else
{
i=g;
}
}
cout << sum;
return 0;
}
这是AC的
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int a,b,c,i,j,sum=0,d,k,g;
int n[100010];
cin >> a >> b >> c;
memset(n,0,sizeof(n));
for(i=1; i<=b; i++)
{
cin >> d;
n[d]=1;
}
g=0;
for(i=1; i<=a-c+1;i++)
{
k=0;
for(j=i; j<=i+c-1; j++)
{
if(n[j]==1)
{
if(k==0)
{
g=j;
}
k++;
}
}
if(k<2)
{
if(k==0)
{
n[i+c-1]=1;
n[i+c-2]=1;
sum=sum+2;
}
if(k==1)
{
if(n[i+c-1]!=1)
{
n[i+c-1]=1;
}
else
{
n[i+c-2]=1;
}
sum=sum+1;
}
}
else
{
i=g;
}
}
cout << sum;
return 0;
}
标签:std,main,int,Gym,Cameras,namespace,cin,include,101291D 来源: https://blog.csdn.net/qq_44134712/article/details/96993753