トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

04aa1.cpp

#include <iostream.h>

#define MAX 100000

long sa(long x, long y)
{
	if(x<y){
		return(y-x);
	}else{
		return(x-y);
	}
}

int main(void)
{
	while(1){
		int a, b, d;
		int x[MAX]={0},y[MAX]={0};
		
		cin >> a >> b >> d;
		if(a+b+d==0) break;
		
		//cout << a << " " << b << " " << d << " : ";
		
		int ct=0;
		
		for(int i=0; i<=30000; i++){
			for(int j=0; j<=30000; j++){
				if(sa(a*i,b*j)==d || a*i+b*j==d && i*j>0){
					// cout << "a*" << i << " b*" << j << endl;
					x[ct]=i; y[ct]=j;
					ct++;
					break;
				}
			}
		}
		
		int xx, yy, min=MAX, minmin=MAX;
		for(int i=0; i<ct; i++){
			if(min==x[i]+y[i]){
				//cout << "eq " << x[i] << " " << y[i] << " : ";
				if(minmin>a*x[i]+b*y[i]){
					minmin=a*x[i]+b*y[i];
					xx=x[i]; yy=y[i];
				}
			}else if(min>x[i]+y[i]){
				min=x[i]+y[i];
				minmin=a*x[i]+b*y[i];
				xx=x[i]; yy=y[i];
			}
		}
		cout << xx << " " << yy << endl;
	}
}