# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
146662 | 2019-08-25T05:48:57 Z | pichulia | 분수 (KPI13_fractions) | C++11 | 1000 ms | 380 KB |
#include<stdio.h> unsigned long long int find_r(unsigned long long int x, unsigned long long int b) { unsigned long long int l,r,mid; l=1; r=b; while(l<r) { mid = (l+r)/2; if((x*mid/b) < mid-1) r = mid; else l=mid+1; } return l-1; } int main() { int t; scanf("%d",&t); while(t--) { unsigned long long int a,b,c,d; unsigned long long int k,s; scanf("%llu %llu %llu %llu",&a,&b,&c,&d); unsigned long long int x,y; unsigned long long int p,q,r; k = a/b; y=1; while(1) { p=d+(a*y/b)*d; q=c*y; if(p<q)break; r = a*y%b; s = find_r(r,b); y += s+(p-q)/(c-k*d); } x = a*y/b+1; printf("%llu %llu\n",x,y); } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 3 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 256 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Correct | 2 ms | 380 KB | Output is correct |
7 | Correct | 2 ms | 256 KB | Output is correct |
8 | Execution timed out | 1076 ms | 376 KB | Time limit exceeded |
9 | Halted | 0 ms | 0 KB | - |