2011年4月30日 星期六

b226: E. 鋪地磚

內容 :
    山治從小就立志要成為一個偉大的廚師,在歷經了辛苦的廚藝訓練、以及到處旅行後。他終於回到了故鄉芭拉蒂,並且在那裡蓋了一間小屋,準備開一間新的餐廳好好大展身手。
    然而新蓋好的水泥小屋空空如也,山治決定先從鋪地磚開始,之後再粉刷牆壁、掛上一些畫以及掛上美麗的吊燈等等。於是,他來到了「偉大航路量販店」,打算採買一些漂亮的地磚回去鋪滿他的小屋。「偉大航路量販店」真是無奇不有,那裡面賣的地磚有大有小、各種樣式,甚至有的比山治的小屋還大。讓山治看得眼花撩亂、暈頭轉向。
    為了採買方便,山治決定挑選其中一種大小的地磚,然後算足數量帶回去鋪。但是山治的數學不太好,他雖然知道自己小屋的長和寬各是幾公尺,但他卻不知道該買多少塊磁磚、該挑多大的磁磚,才會正好拼滿他的小屋。
假如你正好在「偉大航路量販店」打工,你能夠幫山治判斷他挑選的地磚正好需要多少塊才能鋪滿他的小屋嗎?
    注意:為了室內美觀,買回去的地磚如果是長方形,只能以同一個方向鋪而不能轉九十度。另外也不允許地磚被切割、重疊或者交錯。

輸入說明 :
    輸入的每行有四個正整數:
L<空格>W <空格>x<空格>y <換行>
L 和 W 分別表示山治小屋的長和寬 (1<=L, W <= 1000)
x 和 y 分別表示山治挑選的磁磚的長和寬 (1<= x, y <= 1000)
如果輸入 0 0 0 0 則結束程式。

輸出說明 :
    請對於每筆輸入測資,輸出山治所挑的地磚能不能正好鋪滿他的小屋。可以的話請輸出他該買多少片這樣的地磚回去。不行的話請輸出-1。

範例輸入 :
12 15 10 5
8 8 2 4
0 0 0 0

範例輸出 :
-1
8

程式碼 :
#include <stdio.h>

int main()
{
    int l,w,x,y;
    while(scanf("%d%d%d%d",&l,&w,&x,&y)==4)
    {
        if(l==w && w==x && x==y && y==0)
            break;
        l=l*w;
        x=x*y;
        if(l%x==0)
            printf("%d\n",l/x);
        else
            printf("-1\n");
    }
    return 0;
}


http://zerojudge.tw/ShowProblem?problemid=b226

沒有留言:

張貼留言