Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33331 | 郭澍宇 | 【J】T3小清新签到题 | C++ | 解答错误 | 20 | 1000 MS | 260 KB | 937 | 2024-10-07 14:57:15 |
#include<bits/stdc++.h> using namespace std; int t,n; int m; long long k; long long xl[100005]; int main(){ cin>>t; while(t--){ cin>>n>>m>>k; if(k==1){ if(n%m==0) { cout<<m<<endl; } else if(m%n==0){ cout<<n<<endl; } else{ cout<<min(n,m)<<endl; } } else if(n%m==0){ int h=n/m; int ans = k/(h-1) *h* m + k%(h) * m - m; if(ans%n==0)ans+=m; cout<<ans<<endl; } else if(m%n==0){ int h=m/n; int ans = k/(h-1) *h* n + (k%(h)) * n - n; if(ans%m==0)ans+=n; cout<<ans<<endl; } else{ int g = __gcd(n,m); int l=n/g+m/g-2; int rp=k%l; long long ans = k/l*(n*m/g); long long v=k%l; // cout<<k/l<< " "<< v<<endl; int a=0,b=0; for(int i = 1;i<=v;i++){ if((a+1)*n<(b+1)*m){ a++; if(i==v) cout<< ans+a*n <<endl; } else{ b++; if(i==v) cout<< ans+b*m <<endl; } } } } }