又范低级错误!
只做了两题!一道还被HACK了,囧!
A:看了很久!应该是到语文题:
代码:#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int n,m,k;
cin>>n>>m>>k;
int a[];
int m1=,m2=;
for (int i=;i<=n;i++)
{
cin>>a[i];
if (a[i]==) m1++;
else m2++;
}
int ans=;
if (m>=m1) ans=m1+m2-m-k;
else
{
ans=m1-m;
if (k<m2) ans+=m2-k;
} if (ans<) ans=;
cout<<ans<<endl;
return ;
}
写的超级垃圾!反正就是乱搞!
B题:又是一类构建题!先用SK构建好啊A[1]--->A[K];先每个都初始化为L;
然后从A[1]-->A[K]递加,这里最好用除法,加法的太慢会TLE,
A[K+1]-->A[N]其实类似。
#include<iostream>
using namespace std;
int a[];
int main()
{
int n,k,l,r,sa,sk;
cin>>n>>k>>l>>r>>sa>>sk;
int div=sk/k;//a[1]-a[k]
int mod=sk%k;
for (int i=;i<=k;i++)
a[i]=div;
while (mod)
{
for (int i=;i<=k;i++)
{
if (mod==) break;
mod--;
a[i]++;
} }
sa=sa-sk-(n-k)*l;
for (int i=k+;i<=n;i++) a[k+]-a[n]
a[i]=l;
if (n-k!=)//很重要,可能N==K,我就是挂在上面
{
div=sa/(n-k);
mod=sa%(n-k);
}
for (int i=k+;i<=n;i++)
a[i]+=div;
while (mod)
{
for (int i=k+;i<=n;i++)
{
if (mod==) break;
mod--;
a[i]++; } } cout<<a[];
for (int i=;i<=n;i++)
cout<<" "<<a[i];
cout<<endl;
return ;
}
很无语!昨天心情不好,加上CF写挂!