Advertisement
Guest User

Untitled

a guest
Sep 26th, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #include<iostream>
  2. #include<string>
  3. #include<algorithm>
  4. #include<stdio.h>
  5. #include<stdlib.h>
  6. using namespace std;
  7. int ft[1000001];
  8. int read_price(void) {
  9. double f;
  10. scanf("%lf",&f);
  11. return (int)((f+1e-9)*100.0);
  12. }
  13. void update(int index, int value){
  14. while(index<1000001){
  15. ft[index] += value;
  16. index += index&-index;
  17. }
  18. }
  19. long long sumValue(int index){
  20. long long sum = 0;
  21. while(index > 0){
  22. sum += ft[index];
  23. index -= index&-index;
  24. }
  25. return sum;
  26. }
  27. main(){
  28. for(int i=0; i<1000001; i++)
  29. ft[i] = 0;
  30. char sityva[6];
  31. long long answer = 0;
  32. double money;
  33. while(true){
  34. scanf("%s",&sityva);
  35. if(sityva[0] == 'Q')
  36. break;
  37.  
  38. int posMoney = read_price();
  39. if(sityva[0] == 'B'){
  40. update(posMoney,1);
  41. }else if(sityva[0] == 'D'){
  42. update(posMoney,-1);
  43. }else if(sityva[0] == 'S'){
  44. int quantity;
  45. cin>>quantity;
  46.  
  47. long long n;
  48. n = sumValue(1000000)-sumValue(posMoney-1);
  49.  
  50. if(quantity<n)
  51. n = quantity;
  52. answer += n;
  53. }
  54. }
  55. double ans = 0;
  56. long long a = answer/100;
  57. long long b = answer%100;
  58.  
  59. for(int i=0; i<a; i++){
  60. ans += 1;
  61. }
  62. for(int i=0; i<b; i++){
  63. ans += 0.01;
  64. }
  65. printf("%lf",ans);
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement