2022绍兴小学-----问题 A: 分组(group) 题解

本文最后更新于:2 年前

题目

问题 A: 分组(group)

题目描述

小楠今年四年级了!在一天的数学课上,老师介绍了鸡兔同笼问题:
「今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?」
小楠立刻就在脑子里想到了一个类似的问题:有n个小朋友在上体育课,现在老师要对这些小朋友进行分组,既可以x个小朋友分一组,也可以y个分一组,怎么分组才可以让每个小朋友恰好属于一个组。
小楠立刻想到分组方案可能有很多种,所以他想x个一组的组尽量少。
聪明的小楠立刻就想到了方案,所以他想考考同样聪明的你。他告诉了你n、x、y的值,想要你回答他分成x个一组的组数和分成y个一组的组数。
不过小楠可能会搞恶作剧,也就是说可能不存在一种合法的分组方案,这个时候你要告诉他“Impossible”。

输入

一行三个整数n,x,y。

输出

一行两个整数,分别表示分成x个一组的组数和分成y个一组的组数。如果无解,输出 “Impossible”。

样例输入

1
10 2 3

样例输出

1
2 2

提示

样例输入2

1
10 5 2

样例输出2

1
0 5

样例输入3

1
11 3 6

样例输出3

1
Impossible

【数据范围】

对于前30% 的数据,保证x=y;
对于所有数据,有1≤x,y≤n, 1≤n≤100。

题解

emmm……本来水题一道,但比赛的时候脑子短路了,只拿了90分……

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<bits/stdc++.h>
using namespace std;
int n,x,y,flag;
int main(){
scanf("%d%d%d",&n,&x,&y);
for(int i = 0; i <= n/x; i++){
if((n-x*i)%y == 0){
flag = 1;
printf("%d %d\n",i,(n-x*i)/y);
break;
}
}
if(flag == 0){
printf("Impossible\n");
}
return 0;
}

2022绍兴小学-----问题 A: 分组(group) 题解
https://xieyanshe-blog.github.io/posts/866924548/
作者
Seth
发布于
2022年7月9日
更新于
2022年7月9日
许可协议