题解 CF839A 【Arya and Bran】

引领天下

2018-04-10 21:07:13

Solution

这题很简单啊,为什么没人做呢? 所以我来贡献一发题解吧 思路:模拟 可以在线做,对于每一个读入的ai,分类讨论 详见代码 ```cpp #include <cstdio> int n,k,now,ans; int main(void){ scanf ("%d%d",&n,&k);//读入不解释 int i=1; for (;i<=n;i++){ int a; scanf ("%d",&a); if (a>8)ans+=8,now+=a-8;//分类讨论:ai>8,只能+8,剩下来放到now里,以后备用 else if (a<=8&&!now)ans+=a;//不足8,且now里没有东西,直接加 else if (now+a<=8)ans+=now+a,now=0;//之前+现在≤8,直接加,加完归零 else ans+=8,now-=8-a;//不然+8,继续存 if (ans>=k)break;//中途ok了就退出 // printf ("%d %d\n",ans,now); } if (i>n&&ans<k)printf ("-1");//无解 //ans<k的用处就在于,防止了正好n天的情况 else printf ("%d",i);//输出 } ```