アットウィキロゴ

もう少し

import java.io.*;

class pro{

String[] dic=new String[100000];
int[][] word=new int[36][100000];
int[] wordnumber=new int[36];
int[] rank=new int[100000];
int[] dnumber=new int[100000];
int m,n,s,sx,dicnumber;
String str,file;
int p1;


public static void main(String args[]){
pro test=new pro();
}


pro(){

dicread();

for(m=1;m<36;m++){

file="";

if(m<10){
file="gdata/130" ;
file=file+m;
file=file+".txt";
}

if(m>9){
file="gdata/13" ;
file=file+m;
file=file+".txt";
}

readfile(file);

}

for(s=1;s<dicnumber+1;s++){
sx=0;
for(m=1;m<36;m++){
for(n=1;n<wordnumber[m]+1;n++){
if(word[m][n]==s)sx=sx+1;
}
}
dnumber[s]=sx;
}


ranking();

for(s=1;s<301;s++){
p1=rank[s];
System.out.print(dic[p1]);
System.out.print(",");
System.out.println(dnumber[p1]);
}

}

void ranking(){
int m,mx,p;
int h,m1,m2,d1,d2;

for(m=1;m<dicnumber+1;m++){
rank[m]=m;
}

for(m=1;m<dicnumber+1;m++){

mx=0;
p=0;
while(p<50){
mx=mx+1;
m1=rank[mx];
m2=rank[m];

d1=dnumber[m1];
d2=dnumber[m2];

h=0;
if(d2>d1)h=100;

if(h>50)rank[mx]=m2;
if(h>50)rank[m]=m1;

if(h>50)p=100;
if(mx==m-1)p=100;
}

}




}



void dicread(){

String[] a=new String[100000];
n=0;

try{

FileReader fr = new FileReader("dic.txt");
BufferedReader br = new BufferedReader(fr);  
while((str = br.readLine()) != null) {  
n=n+1;
a[n]=str;  
}

fr.close();
}catch(IOException ep){ System.out.println("入出力エラーです。"); }

dicnumber=n;
for(n=1;n<dicnumber+1;n++){
String[] x=a[n].split(",");  
dic[n]=x[1];
}








}






void readfile(String file){

String[] a=new String[100000];
n=0;

try{

FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);  
while((str = br.readLine()) != null) {  
n=n+1;
a[n]=str;  
}

fr.close();
}catch(IOException ep){ System.out.println("入出力エラーです。"); }

wordnumber[m]=n;
for(n=1;n<wordnumber[m]+1;n++){
String[] x=a[n].split(",");  
word[m][n]=Integer.parseInt(x[1]);
}
}





}
最終更新:2011年05月08日 21:54