比赛 板子大赛 评测结果 AAAAAAAAAA
题目名称 表达式求值 最终得分 100
用户昵称 IMZ 运行时间 0.061 s
代码语言 C++ 内存使用 3.82 MiB
提交时间 2025-01-22 14:07:39
显示代码纯文本
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. char s[3000010];
  4. int main(){
  5. freopen("expr2013.in","r",stdin);
  6. freopen("expr2013.out","w",stdout);
  7. scanf("%s",s+1);
  8. int len=strlen(s+1);
  9. long long a=0,sum=0;
  10. for(int i=1;i<=len;i++){
  11. if(s[i]=='*'){
  12. int j=i+1;
  13. long long b=0;
  14. while(s[j]>='0'&&s[j]<='9'){
  15. b=b*10+(s[j]-'0');
  16. s[j]='-';
  17. j++;
  18. }
  19. b=b%1000000;//看看
  20. // printf("b=%lld\n",b);
  21. int k=0;j=i-1;
  22. long long cnt=0;
  23. while(s[j]>='0'&&s[j]<='9'){
  24. cnt=cnt+pow(10,k)*(s[j]-'0');
  25. s[j]='-';
  26. k++;j--;
  27. }
  28. if(cnt==0){
  29. cnt=a;
  30. }
  31. // printf("%lld\n",cnt);
  32. cnt=cnt%1000000;
  33. a=(cnt*b)%1000000;
  34. }
  35. if(s[i]=='-'&&(i==len||s[i+1]=='+')){
  36. sum=(sum+a)%1000000;
  37. }
  38. }
  39. long long cnt=0;
  40. for(int i=1;i<=len;i++){
  41. while(s[i]>='0'&&s[i]<='9'){
  42. cnt=cnt*10+(s[i]-'0');
  43. s[i]='/';
  44. i++;
  45. }
  46. sum=(sum+cnt)%1000000;
  47. cnt=0;
  48. }
  49. sum=sum%10000;
  50. printf("%lld",sum);
  51. return 0;
  52. }