UVa 10633 - Rare Easy Problem Solution

#include <iostream>
#include <cmath>
long long A,B,x,y;
long long gcd(long long a,long long b,long long &x,long long &y){
    if(a==0){
        x=0,y=1;
        return b;
    }
    long long x1,y1;
    long long hcf=gcd(b%a,a,x1,y1);
    x=y1-(b/a)*x1;
    y=x1;
    return hcf;
}
using namespace std;
int main(){
    ios::sync_with_stdio(0);
    long long n;
    while(cin>>n&&n>0){
        A=9,B=1;
        gcd(A,B,x,y);
        x=0,y=1;
        x*=n;
        y*=n;
        long long z=-x+1;
        x+=z;
        y-=9*z;
        if(y>=10){
            long long t=(y-10)/9+1;
            y-=9*t;
            x+=t;
        }
        while(y>=0){
            cout<<x<<y;
            if(y-9>=0)
                cout<<' ';
            x+=1;
            y-=9;
        }
        cout<<endl;
    }
}

Comments