Codeforces Round #359 (Div. 2)
A. Free Ice Cream
题目链接:http://www.codeforces.com/problemset/problem/686/A
题意:N个人在排队,一开始店主有M个冰淇凌,队伍中第i个人可能是一个送冰激凌的工人,他会带给店主+A[i]个冰淇凌,也可能是一个小朋友,他想要-A[i]个冰淇凌,当排到一个小朋友的时候,如果店主现在手里的冰淇凌数量能满足他,那么就满足他,不然小朋友就会一个冰淇凌也不拿失望的离开。
question:队伍中所有的人都走了之后店主剩下的冰淇凌数量和失望离开的小朋友的数量。
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #include<map> 6 using namespace std; 7 #define LL long long 8 int n; 9 LL xx; 10 struct node 11 { 12 int kid; 13 LL x; 14 char c; 15 }X[1010]; 16 int main() 17 { 18 while(scanf("%d%d",&n,&xx)!=EOF) 19 { 20 for(int i=0;i<n;i++) 21 { 22 X[i].kid=i+1; 23 cin>>X[i].c; 24 cin>>X[i].x; 25 } 26 for(int i=0;i<n;i++) 27 { 28 if(X[i].c=='+') 29 xx+=X[i].x; 30 if(X[i].c=='-') 31 { 32 if(xx>=X[i].x) 33 xx-=X[i].x; 34 else 35 X[i].kid=0; 36 } 37 } 38 int s=0; 39 for(int i=0;i<n;i++) 40 { 41 if(X[i].kid==0) 42 s++; 43 } 44 printf("%I64d %d\n",xx,s); 45 } 46 return 0; 47 }