she像我这种垃圾选手只能跑来搞div 2.。。
rating增加的好慢啊,不知道何年何月能上紫。。。
A:暴力傻逼题,开场3分钟切。
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fd(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
const int N=1e5+5;
int n,m,k;
int a[N];
int main()
{
scanf("%d%d",&n,&k);
fo(i,1,n)scanf("%d",&a[i]);
int sum1=0,sum2=0;
int i;
for(i=1;i<=n;i++)
{
sum1+=a[i];
if (sum1>=8)sum1-=8,sum2+=8;
else sum2+=sum1,sum1=0;
if (sum2>=k)break;
}
if (sum2<k)printf("-1\n");
else
printf("%d\n",i);
}
B:比较麻烦的贪心题,想法是,对于一个四连,相当于两个二连。
那么先把四连和二连坐满,然后只剩余3,2