#include <algorithm>
#include <iostream>
using namespace std;

int main() {
    int n,p,a,b,c;
    while(cin>>n>>a>>b>>c){
        int res=0,I,J;
        int p = a*100+b*10+c;
        for(int i=1;i<=9;i++){
            for(int j=0;j<=9;j++){
                int price = i*10000+p*10+j;
                if(price%n==0){
                    res=max((price/n), res);
                    I=i;J=j;
                }
            }
        }

        if(res==0){
            printf("%d",0);
        }else {
            printf("%d %d %d\n",I,J,res);
        }
        
    }

    

    
}
// 64 位输出请用 printf("%lld")

打卡:005;

【题目大意】N 只火鸡的价格为$ _XYZ_,火鸡的总数 N 1 99 之间。价格由五位数组成,两边的数字由于褪色而看不清,所以只能看到中间的三位数。假设第一个数字非零,每只火鸡的价格是整数,并且所有火鸡的价格相同。给定 N,X,Y Z,编写一个程序来猜测两边褪色的数字和火鸡的原始价格。如果有多个价格符合题意,那么输出最昂贵的那个。

算法思路:枚举

关键点:题目要“如果有多个价格符合题意,那么输出最昂贵的”;我是用i遍历第一个缺失的数,用j遍历最后一个缺失的数,起初我想把每个i,j以及对应的价格存起来,然后找到最贵的输出;后来发现i和j是从小到大遍历的,也就是说总价格也是越来越大的;那么最后一个满足条件的总价格求出的单价就是最贵的;直接遍历到最后,输出就行;