1. 程式人生 > >SDNU 1170.津津的儲蓄計劃

SDNU 1170.津津的儲蓄計劃

零花錢 col style ble 會有 h+ ora 多少 並且

Description

津津的零花錢一直都是自己管理。每個月的月初媽媽給津津300元錢,津津會預算這個月的花銷,並且總能做到實際花銷和預算的相同。 為了讓津津學習如何儲蓄,媽媽提出,津津可以隨時把整百的錢存在她那裏,到了年末她會加上20%還給津津。因此津津制定了一個儲蓄計劃:每個月的月初,在得到媽媽給的零花錢後,如果她預計到這個月的月末手中還會有多於100元或恰好100元,她就會把整百的錢存在媽媽那裏,剩余的錢留在自己手中。 例如11月初津津手中還有83元,媽媽給了津津300元。津津預計11月的花銷是180元,那麽她就會在媽媽那裏存200元,自己留下183元。到了11月月末,津津手中會剩下3元錢。 津津發現這個儲蓄計劃的主要風險是,存在媽媽那裏的錢在年末之前不能取出。有可能在某個月的月初,津津手中的錢加上這個月媽媽給的錢,不夠這個月的原定預算。如果出現這種情況,津津將不得不在這個月省吃儉用,壓縮預算。 現在請你根據2004年1月到12月每個月津津的預算,判斷會不會出現這種情況。如果不會,計算到2004年年末,媽媽將津津平常存的錢加上20%還給津津之後,津津手中會有多少錢。

Input

輸入包括12行數據,每行包含一個小於350的非負整數,分別表示1月到12月津津的預算。

Output

輸出包括一行,這一行只包含一個整數。如果儲蓄計劃實施過程中出現某個月錢不夠用的情況,輸出-X,X表示出現這種情況的第一個月;否則輸出到2004年年末津津手中會有多少錢。

Sample Input

290
230
280
200
300
170
340
50
90
80
200
60

Sample Output

-7

Source

NOIP 2004 提高組
#include <cstdio>
#include 
<iostream> #include <string> #include <cstring> #include <algorithm> #include <queue> using namespace std; int main() { int storage[18], month = 0, i; int sum = 0, s = 0; for(i = 0; i<12; i++) { scanf("%d", &storage[i]); }
for(i = 0; i<12; i++) { sum += (300-storage[i]); // printf("i = %d, sum = %d\n", i, sum); if(sum > 0) while(sum) { if(sum >= 100) { sum -= 100; // printf("sum = %d, ",sum); s += 100; // printf("s = %d\n", s); if(sum == 0)month++; } else if(sum<100 && sum >= 0) { month++; break; } } else if(sum == 0)month++; else if(sum<0) { printf("-%d\n", ++month); break; } } if(i == 12) { s = s+s*0.2+sum; printf("%d\n", s); } return 0; }

SDNU 1170.津津的儲蓄計劃