比赛 20220531高一小测验 评测结果 WWWWWWWWWW
题目名称 添加号 最终得分 0
用户昵称 dew52 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-06-01 21:47:34
显示代码纯文本
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string s;
  4. int a[210]={0};
  5. int m;
  6. int num;
  7. long long dp(int q,int nnt,int num)
  8. {
  9. long long cnt=0;
  10. long long cntt=1;
  11. for(int i=q+nnt-1;i>=q;--i)
  12. {
  13. cnt=a[i]*cntt+cnt;
  14. cntt=cntt*10;
  15. }
  16. for(int i=1;i<=m;++i)
  17. {
  18. long long cheng=1;
  19. for(int j=q+nnt+num*i-1;j>q+nnt+num*(i-1)-1;--j)
  20. {
  21. cnt=a[j]*cheng+cnt;
  22. cheng=cheng*10;
  23. }
  24. }
  25. for(int i=1;i<=m;++i)
  26. {
  27. if(q>1)
  28. {
  29. long long cheng=1;
  30. for(int j=q-(i-1)*num-1;j>=q-num*i;--j)
  31. {
  32. cnt=a[j]*cheng+cnt;
  33. cheng=cheng*10;
  34. }
  35. }
  36. }
  37. return cnt;
  38. }
  39. int main(void)
  40. {
  41. freopen("exam4.in","r",stdin);
  42. freopen("exam4.out","w",stdout);
  43. cin>>s>>m;
  44. for(int i=1;i<=s.length();++i)
  45. {
  46. a[i]=s[i-1]-'0';
  47. }
  48. num=s.length()/m;
  49. int nnt=s.length()-num*m;
  50. long long answer=dp(1,nnt,num);
  51. for(int i=1;i<=s.length()-nnt;i=i+num)
  52. {
  53.  
  54. answer=min(answer,dp(i,nnt,num));
  55.  
  56. }
  57. answer=min(answer,dp(s.length()-nnt+1,nnt,num));
  58. cout<<answer;
  59. return 0;
  60. }