C++プログラミング10.05

1943 ワード

1023:坑父の黒い店
スコア:1
時間制限:1秒
メモリ制限:32メガ
特殊問題:いいえ
コミット:12
解決:1
分類ラベル
  • シミュレーション
  • タイトルの説明
    今日、明ちゃんは絵のような景色のところへ行って気晴らしをしましたが、自分が持っている飲み物を飲み終わって、明ちゃんは喉が渇いて耐えられなくて、遠くに小さな店があるのを見て、飲み物を買いに行きました.明ちゃん「飲み物を買います!店主:「ここには3種類の飲み物があります.ミネラルウォーターは1.5元で、コーラは2元で、オレンジジュースは3.5元です.」明ちゃん「はい、ミネラルウォーターを一本ください.」そう言って彼はN元の札を取り出して店主に渡した.店主:「注意するのを忘れました.ここにはお客さんのお金を探す習慣がありません.たくさんのお金はチップとして受け取りました.へへへ.」明ちゃん「…」明ちゃんは周りを見回して、この店だけで、しかも喉が渇いたので、ここで買うことにしました.しかし、明ちゃんは、チップとしてお金をあげるよりも、自分で飲み物をもっと買ったほうがいいと思っています.どうせ朝晩飲みますが、できるだけチップを稼いではいけません.今、明ちゃんはあなたが彼に計算してほしいと思っています.少なくとも彼は店主にいくらチップをあげますか.
    入力フォーマット
    入力データの最初の行は整数T(1<=T<=100)であり、テストデータの数を表す.次にT行のテストデータで、各テストデータには正の整数N(1<=N<=10000)しか含まれておらず、Nは小明の手にある紙幣の額面値を表し、分割単位である.注意:店には問題に書いてある3種類の飲み物しかありません.
    しゅつりょく
    各グループのテストデータについて、明ちゃんが少なくともいくらを無駄にして店主にチップとして出力してください.
    サンプル入力
    2 900 250
    サンプル出力
    0 50
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int t,n,min[100];
    	int pre;
    	int pre2;
    	int pre3;
    	int temp;
    	cin>>t;
    	for(int i=0;i<t;i++)//    
    	{
    		cin>>n;
    		temp = n;		
    		min[i] = n;
    		pre = n;
    		
    		for(int j=0; temp>=0; j++)//  350   
    		{
    			if(j!=0)
    				temp = temp-350;
    			if(temp<0)
    			{
    				if(min[i]>pre)
    					min[i] = pre;
    				if(pre<150)
    					break;
    				else
    					temp+=350;
    			}
    			pre = temp;
    			pre2 = temp;
    			for(int a=0; temp>=0; a++)//  200   
    			{
    				if(a!=0)
    					temp-=200;
    				if(temp<0)
    				{
    					if(min[i]>pre2)
    						min[i] = pre2;
    					if(pre2<150)
    					{
    						temp = pre;
    						break;
    					}
    					else
    						pre2+=200;
    				}
    				pre2 = temp;
    				pre3 = temp;
    				for(int b=0; temp>=0; b++)//  150   
    				{
    					temp = temp - 150;
    					if(temp<0)
    					{
    						if(min[i]>pre3)
    						{
    							min[i] = pre3;
    							temp = pre2;
    							break;
    						}
    					}
    					pre3 = temp;
    				}
    			}
    		}
    		cout<<min[i]<<endl;
    	}
    	return 0;
    }