diff options
| author | Aditya Naik | 2018-05-10 00:15:29 -0400 |
|---|---|---|
| committer | Aditya Naik | 2018-05-10 00:15:29 -0400 |
| commit | 631ca6817d552db1725c7d6a445705f709302139 (patch) | |
| tree | 4ed1e943305fd5ff0772336034ee2a47458e68cc /12060 | |
| parent | 42fe0d8a06c1cecb7771823b9ae51220c469dc82 (diff) | |
reorg
Diffstat (limited to '12060')
| -rwxr-xr-x | 12060/average | bin | 0 -> 35696 bytes | |||
| -rw-r--r-- | 12060/average.cpp | 119 | ||||
| -rw-r--r-- | 12060/average.in | 8 |
3 files changed, 127 insertions, 0 deletions
diff --git a/12060/average b/12060/average Binary files differnew file mode 100755 index 0000000..557795a --- /dev/null +++ b/12060/average diff --git a/12060/average.cpp b/12060/average.cpp new file mode 100644 index 0000000..5627b61 --- /dev/null +++ b/12060/average.cpp @@ -0,0 +1,119 @@ +#include <iostream> +#include <cmath> +#include <iomanip> +using namespace std; + +int find_gcd(int a, int b); +void printer(int c, int q, int num, int deno); + +int main(){ + int n, cnum=0; + cin>>n; + + while(n>0){ + cnum++; + int nm, sum=0; + for(int i=0; i<n; i++){ + cin>>nm; + sum += nm; + } + int gcd; + int deno, num, q; + if(abs(sum)>=n){ + if(sum % n == 0){ + num = sum/n; + deno = 0; + q = 0; + } + else{ + gcd = find_gcd(sum,n); + while(gcd != 1){ + sum /= gcd; + n /= gcd; + gcd = find_gcd(sum,n); + } + q = (sum-(sum%n))/n; + num = sum%n; + deno = n; + } + } + else{ //abs(sum)<n + gcd = find_gcd(n,sum); + while(gcd != 1){ + sum /= gcd; + n /= gcd; + gcd = find_gcd(n,sum); + } + q = 0; + num = sum; + deno = n; + } + printer(cnum, q, num, deno); + cin >> n; + + } +} + +void printer(int c, int q, int num, int deno){ + int dl=0, ql=0, nl=0, x=deno, y=q, z = num; + while (x /= 10) + dl++; + while(y /= 10) + ql++; + while(z /= 10) + nl++; + if(deno == 1 || deno == 0){ + if(num<0) + cout<<"Case "<<c<<":\n"<<"- "<<abs(num)<<endl; + else + cout<<"Case "<<c<<":\n"<<num<<endl; + } + else if(q == 0){ + if(num<0 || deno<0){ + cout<<"Case "<<c<<":\n"; + for(int k=0;k<dl+2;k++) cout<<" "; + cout<<abs(num)<<endl; + cout<<"- "; + for(int k=0;k<dl+1;k++) cout<<"-"; + cout<<endl; + cout<<" "<<abs(deno)<<endl; + } + else{ + cout<<"Case "<<c<<":\n"; + for(int k=0;k<dl;k++) cout<<" "; + cout<<abs(num)<<endl; + for(int k=0;k<dl+1;k++) cout<<"-"; + cout<<endl; + cout<<abs(deno)<<endl; + } + } + else{ + if(num<0 || deno<0){ + cout<<"Case "<<c<<":\n"; + for(int k=0;k<dl+2+ql-nl+1;k++) cout<<" "; + cout<<abs(num)<<endl; + cout<<"- "<<abs(q); + for(int k=0;k<dl+1;k++) cout<<"-"; + cout<<endl; + for(int k=0;k<3+ql;k++) cout<<" "; + cout<<abs(deno)<<endl; + } + else{ + cout<<"Case "<<c<<":\n"; + for(int k=0;k<dl+1+ql-nl;k++) cout<<" "; + cout<<num<<endl; + cout<<q; + for(int k=0;k<dl+1;k++) cout<<"-"; + cout<<endl; + for(int k=0;k<2+ql-1;k++) cout<<" "; + cout<<deno<<endl; + } + } +} + +int find_gcd(int a, int b){ + if(b==0) + return a; + else + return find_gcd(b, a % b); +} diff --git a/12060/average.in b/12060/average.in new file mode 100644 index 0000000..6ae00d8 --- /dev/null +++ b/12060/average.in @@ -0,0 +1,8 @@ +2 -1 1 +100 4 -1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 +100 -8 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 +1 -10000 +1 10000 +100 -909 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 -10000 +100 -99 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +0 |
