tjut 5933

来源:互联网 发布:我的滑板鞋 知乎 编辑:程序博客网 时间:2024/06/07 17:04
#include<stdio.h>  #include<string.h>  #include<queue>  #include<deque>  using namespace std;  #define ll __int64  ll a[100005];  int main()  {      int t;      int kase=0;      scanf("%d",&t);      while(t--)      {          int n;          ll kk;          scanf("%d%I64d",&n,&kk);          ll sum=0;          deque<ll >s;          for(int i=0;i<n;i++)          {              scanf("%I64d",&a[i]);              sum+=a[i];              s.push_back(a[i]);          }          printf("Case #%d: ",++kase);          if(sum%kk!=0)          {              printf("-1\n");              continue;          }          ll k=sum/kk;          int output=0;          while(!s.empty())          {              ll u=s.front();              s.pop_front();              if(u==k)continue;              else if(u>k)              {                  output+=u/k;                  u%=k;                  if(u==0)output--;              }              if(u==0)continue;              if(u<k)              {                  while(1)                  {                      ll v=s.front();                      s.pop_front();                      u+=v;                      output++;                      if(u==k)break;                      if(u>k)                      {                          s.push_front(u);                          break;                      }                  }              }          }          printf("%d\n",output);      }  }  

0 0