Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string>
- #include<algorithm>
- #include<stdio.h>
- #include<stdlib.h>
- using namespace std;
- int ft[1000001];
- int read_price(void) {
- double f;
- scanf("%lf",&f);
- return (int)((f+1e-9)*100.0);
- }
- void update(int index, int value){
- while(index<1000001){
- ft[index] += value;
- index += index&-index;
- }
- }
- long long sumValue(int index){
- long long sum = 0;
- while(index > 0){
- sum += ft[index];
- index -= index&-index;
- }
- return sum;
- }
- main(){
- for(int i=0; i<1000001; i++)
- ft[i] = 0;
- char sityva[6];
- long long answer = 0;
- double money;
- while(true){
- scanf("%s",&sityva);
- if(sityva[0] == 'Q')
- break;
- int posMoney = read_price();
- if(sityva[0] == 'B'){
- update(posMoney,1);
- }else if(sityva[0] == 'D'){
- update(posMoney,-1);
- }else if(sityva[0] == 'S'){
- int quantity;
- cin>>quantity;
- long long n;
- n = sumValue(1000000)-sumValue(posMoney-1);
- if(quantity<n)
- n = quantity;
- answer += n;
- }
- }
- double ans = 0;
- long long a = answer/100;
- long long b = answer%100;
- for(int i=0; i<a; i++){
- ans += 1;
- }
- for(int i=0; i<b; i++){
- ans += 0.01;
- }
- printf("%lf",ans);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement