PDF (English) | Statistics | Forum |
Time Limit: 2 second(s) | Memory Limit: 32 MB |
Rahaduzzaman Setu, (Roll - 12) of 13th batch, CSE, University of Dhaka. He passed away on 18th April 2012. This is one of the saddest news to all. May he rest in peace. This problem is dedicated to him.
This problem was written during his treatment. He will be in our prayers, always.
"He has been suffering from Multi Drug Resistant TB for a long time. Now, his left lung is damaged and beyond repair. No medicine is working on his body to ease his pain. It is urgent to operate on his left lung so that the disease doesn't spread to his right lung. It can either be removed through surgery or transplanted. He comes from a modest family and it is difficult and impossible for them to bare his medical expenses anymore. Because of the money needed (12 million BDT) to transplant, it is his family's decision to go with the surgery (3 million BDT). We must help them financially by raising money. But we must not be confined with that amount only to do the surgery. We must go for the Transplant. Our target will be to collect as much as possible to help our friend [link]."
However, in this problem, you have to build a software that can calculate the donations. Initially the total amount of money is 0 and in each time, two types of operations will be there.
1) "donate K" (100 ≤ K ≤ 105), then you have to add K to the account.
2) "report", report all the money currently in the account.
Input starts with an integer T (≤ 100), denoting the number of test cases.
Each case starts with a line containing an integer N (1 ≤ N ≤ 100) denoting the number of operations. Then there will be N lines each containing two types of operations as given. You may assume that the input follows the restrictions above. Initially the account is empty for each case.
For each case, print the case number in a single line. Then for each "report" operation, print the total amount of money in the account in a single line.
Sample Input |
Output for Sample Input |
2 4 donate 1000 report donate 500 report 2 donate 10000 report |
Case 1: 1000 1500 Case 2: 10000 |
SPECIAL THANKS: SOHEL HAFIZ
解题思路:
直接模拟,d的时候就是加,r就是输出和。
#include <iostream> #include <cstring> #include <cstdio> using namespace std; int main() { int t, Q=1; scanf("%d",&t); while(t--) { bool flag=0; char str[101]; int a; int n; scanf("%d",&n); int sum=0; for(int i=0; i< n; i++) { scanf("%s",str); if(str[0]=='d') { scanf("%d",&a); sum += a; } else { if(!flag) { flag=1; printf("Case %d:\n",Q);printf("%d\n",sum); } else printf("%d\n",sum); } } Q++; } return 0; }