SRM 611
失敗。
250
ちゃんと方針を立ててからコーディングしましょう・・・
public class LCMSet{ int gcd(int a,int b){ while(a>0){ b%=a; int c=a; a=b; b=c; } return b; } public String equal(int[]a,int[]b){ boolean ok=true; int c[][]=new int[50][100]; int d[][]=new int[50][100]; int szA[]=new int[50]; int e[][]=new int[50][100]; int f[][]=new int[50][100]; int szB[]=new int[50]; for(int i=0;i<a.length;i++){ int now=a[i]; for(int j=2;j*j<=now;j++){ if(now%j==0){ c[i][szA[i]]=j; while(now%j==0){ now/=j; d[i][szA[i]]++; } szA[i]++; } } if(now>1){ c[i][szA[i]]=now; d[i][szA[i]++]=1; } } for(int i=0;i<b.length;i++){ int now=b[i]; for(int j=2;j*j<=now;j++){ if(now%j==0){ e[i][szB[i]]=j; while(now%j==0){ now/=j; f[i][szB[i]]++; } szB[i]++; } } if(now>1){ e[i][szB[i]]=now; f[i][szB[i]++]=1; } } for(int i=0;i<a.length;i++){ int M[]=new int[szA[i]]; for(int j=0;j<b.length;j++){ boolean OK=true; int at=0; for(int k=0;k<szB[j];k++){ while(at<szA[i]&&e[j][k]!=c[i][at])at++; if(at==szA[i]||f[j][k]>d[i][at])OK=false; } if(OK){ at=0; for(int k=0;k<szB[j];k++){ while(at<szA[i]&&e[j][k]!=c[i][at])at++; M[at]=Math.max(M[at],f[j][k]); } } } for(int j=0;j<szA[i];j++)if(M[j]<d[i][j])ok=false; } for(int i=0;i<b.length;i++){ int M[]=new int[szB[i]]; for(int j=0;j<a.length;j++){ boolean OK=true; int at=0; for(int k=0;k<szA[j];k++){ while(at<szB[i]&&c[j][k]!=e[i][at])at++; if(at==szB[i]||d[j][k]>f[i][at])OK=false; } if(OK){ at=0; for(int k=0;k<szA[j];k++){ while(at<szB[i]&&c[j][k]!=e[i][at])at++; M[at]=Math.max(M[at],d[j][k]); } } } for(int j=0;j<szB[i];j++)if(M[j]<f[i][j])ok=false; } if(ok)return "Equal"; return "Not equal"; } }
550
これ解けないのは仕方ないと思う
1000
Challenge Phase
自明に落ちるソート忘れのコードすらevimaさんに取られるし、SystemTestで2人も落ちるし、本当に何やってるんですかね・・・
202.03 (113th)
Rating: 2426 -> 2399 (-27)
どうやらはてなブログの文字色変更にはバグがあるっぽいなあ。前回指定した色を指定してOKを押しても反応しない。