HNUSTOJ-1690 千纸鹤
1690: 千纸鹤
时间限制: 1 Sec 内存限制: 128 MB提交: 992 解决: 296
[提交][状态][讨论版]
题目描述
圣诞节快到了,校园里到处弥漫着粉红色的气息。又是一个情侣秀恩爱的节日。
作为一只在双十一剁手的单身狗,XX只能望着空荡荡的钱包欲哭无泪。
XX琢磨着,得趁圣诞节的时候赚点外快,不然真得喝西北风去了。
但是能赚什么外快呢?批发苹果?没本金;卖贺卡?没本金;许愿灯?还是没本金……想来想去,做什么都没!本!金!这个残酷的世界啊,还给不给单身狗活路了!!!
最后还是心灵手巧,多才多艺的室友给了XX灵感——对,没错,就是题目——千纸鹤!
和其他的比起来,千纸鹤成本低廉到可以忽略不计。而最丧心病狂的是,XX为了节约成本,她都没直接去买可以叠千纸鹤的方块纸,而是自己买了白纸回来裁!!
而XX那奇葩的审美,让她觉得千纸鹤折越大越好看。所以她裁剪的时候,都是裁一块最大面积的正方形出来折千纸鹤。然后下一次又在剩余的纸中继续裁一块最大的正方形。
那么问题来了,一块长a宽b的长方形纸,在折完k只千纸鹤以后,还剩多大?
例如长为7宽为3的纸片,折完3只千纸鹤后,剩下的纸片为长2宽1。
输入
输入只有一行,包括三个整数 a, b, k (0 < b <= a <= 10,000),分别表示纸片的长,宽,以及千纸鹤的个数。保证数据合法。
输出
输出一行运算结果,结果为两个整数,分别表示剩余白纸的长和宽,数字以空格隔开,末尾要换行(长 >= 宽)。
样例输入
1 1 1
样例输出
0 0
#include<iostream> #include<cstring> #include<cstdio> using namespace std; char ch[105]; int main(){ int a, b, k; scanf("%d %d %d", &a, &b, &k); for(int i = 1; i <= k; i++){ if(a > b){ a = a - b; }else{ b = b - a; } } if(a == 0 || b == 0) printf("0 0\n"); else printf("%d %d", max(a, b), min(a, b)); }