#include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <string.h> #include <iostream> #include <vector> #include <list> #include <stack> #include <queue> #include <map> #include <set> #include <algorithm> typedef short int int16;///32767 typedef int int32;///2147483647 typedef long long int64;///9223372036854775807 const double PI=acos(-1.0);///3.141593 const long long MOD=(long long)1E9+7LL;///1000000007 template <class T> T Susake_pow(T a,T b)///pow {T res;if(b==0) return 1;else while((b&1)==0){b>>=1;a*=a;}res=a;b>>=1;while(b!=0){a*=a;if((b&1)!=0)res*=a;b>>=1;}return res;} template<class T> inline T gcd(T a,T b)///gcd {if(a<0)return gcd(-a,b);if(b<0)return gcd(a,-b);return (b==0)?a:gcd(b,a%b);} template<class T> inline T lcm(T a,T b)///lcm {if(a<0)return lcm(-a,b);if(b<0)return lcm(a,-b);return a*(b/gcd(a,b));} template<class T> inline char *Susake_nsystem(T n)///itoa(26) {T t=0,i;char *s,*p;s=(char *)malloc(sizeof(char)*1000);p=(char *)malloc(sizeof(char)*1000); while(n){s[t]=n%26+64;if(s[t]==64){s[t]+=26;n-=26;}t++;n/=26;}s[t]=‘\0‘;for(i = 0; i < t; i++)p[i]=s[t-1-i];p[i]=‘\0‘;free(s);return p;} int Susake_system(char *s)///atoi(26) {int len=strlen(s),i,sum=0;char p[1000];for(i=0;i<len;i++)p[i]=s[len-1-i]-64;for(i=0;i<len;i++)sum+=p[i]*Susake_pow(26,i);return sum;} void exgcd(long long a, long long b, long long& d,long long& x, long long& y) { if(!b) {d = a; x = 1; y = 0;} else { exgcd(b, a % b, d, y, x); y -= x * (a / b); } } int main(int argc, char *argv[]) { long long a, b, c, d, x, y; std::cin >> a >> b >> c; exgcd(a, b, d, x, y); if(c % d != 0) puts("-1"); else std::cout << -x * (c / d) << " " << -y * (c / d) << std::endl; return 0; }
时间: 2024-12-11 01:58:56