1 solutions
-
0
C :
#include<stdio.h> #include<math.h> #include<stdlib.h> main() { int i,j,k,p,x,sum; int n,m; int a,b,c; int f[4]; for(i=0;i<4;i++) { scanf("%d %d %d",&a,&b,&c); f[i]=a*10000+b*100+c; } p=f[0]; sum=101; for(i=1;i<=99;i++) for(j=1;j<=99;j++) for(k=1;k<=99;k++) { if((i*f[1]+j*f[2]+k*f[3])%f[0]==0) { p=(i*f[1]+j*f[2]+k*f[3])/f[0]; if(p>100)break; if(p<sum) { sum=p; a=i;b=j;c=k; } } } if(sum==101)printf("NONE\n"); else printf("%d %d %d %d\n",a,b,c,sum); return 0; }C++ :
#include<cstdio> using namespace std; typedef struct { int x,y,z; }q; q p[5]; int gcd(int m,int n) { if(n==0) return m; return gcd(n,m%n); } int main() { int i,j,k; for(i=1;i<5;i++) scanf("%d %d %d",&p[i].x,&p[i].y,&p[i].z); for(i=0;i<=100;i++) { for(j=0;j<=100;j++) { for(k=0;k<=100;k++) { int a[4],s; a[1]=i*p[2].x+j*p[3].x+k*p[4].x; a[2]=i*p[2].y+j*p[3].y+k*p[4].y; a[3]=i*p[2].z+j*p[3].z+k*p[4].z; s=gcd(a[1],a[2]); if(s==0) continue; if(a[3]%s==0) { if(s==a[3]) { if(a[1]==(p[1].x)&&a[2]==(p[1].y)&&a[3]==(p[1].z)) { printf("%d %d %d 1\n",i,j,k,s); return 0; } } else { if(a[1]==p[1].x&&a[2]==p[1].y&&a[3]==p[1].z) { printf("%d %d %d 1\n",i,j,k,s); return 0; } if(a[1]==(p[1].x*s)&&a[2]==(p[1].y*s)&&a[3]==(p[1].z*s)) { printf("%d %d %d %d\n",i,j,k,s); return 0; } } } else { if((a[1]==p[1].x)&&(a[2]==p[1].y)&&(a[3]==p[1].z)) { printf("%d %d %d 1\n",i,j,k); return 0; } } } } } printf("NONE\n"); return 0; }Pascal :
program ratios; var i,j,k,x,y,z,min,tip1,tip2,tip3,ans:longint; a,b,c:array[0..100] of longint; begin readln(x,y,z); for i:=1 to 3 do readln(a[i],b[i],c[i]); min:=maxlongint; for i:=0 to 99 do for j:=0 to 99 do for k:=0 to 99 do begin if (a[1]*i+a[2]*j+a[3]*k<>0) and (b[1]*i+b[2]*j+b[3]*k<>0) and (c[1]*i+c[2]*j+c[3]*k<>0) then if ((a[1]*i+a[2]*j+a[3]*k) mod x=0) and ((b[1]*i+b[2]*j+b[3]*k) mod y=0) and ((c[1]*i+c[2]*j+c[3]*k) mod z=0) and ((a[1]*i+a[2]*j+a[3]*k) div x=(b[1]*i+b[2]*j+b[3]*k) div y) and ((b[1]*i+b[2]*j+b[3]*k) div y=(c[1]*i+c[2]*j+c[3]*k) div z) then begin if i+j+k<min then begin min:=i+j+k; ans:=(b[1]*i+b[2]*j+b[3]*k) div y; tip1:=i; tip2:=j; tip3:=k; end; end; end; if min<>maxlongint then writeln(tip1,' ',tip2,' ',tip3,' ',ans) else writeln('NONE'); end.
- 1
Information
- ID
- 19400
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By