poj1579

来源:互联网 发布:阿里云有在线客服吗 编辑:程序博客网 时间:2024/05/21 09:03


package work;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class wshuzu1579 {
  static int a,b,c;
 static int size=21;
   static int w[][][]=new int [size][size][size];
public  static void main(String args[]) throws FileNotFoundException{
 pre();
   //Scanner scanner=new Scanner(System.in);
  Scanner scanner = new Scanner(new File("src/1579.txt"));
while(true){
 String[] sc=scanner.nextLine().split(" ");
  a=Integer.valueOf(sc[0]);
  b=Integer.valueOf(sc[1]);
  c=Integer.valueOf(sc[2]); 
  if(a==-1&&b==-1&&c==-1){ break;}
  if(a<=0||b<=0||c<=0){System.out.println("w"+"("+a+","+b+","+c+")"+"="+1);}
  else if(a>20||b>20||c>20){System.out.println("w"+"("+a+","+b+","+c+")"+"="+w[20][20][20]);}
  else if(a>=0&&a<=20||b>=0&&b<=20||c>=0&&c<=20){System.out.println("w"+"("+a+","+b+","+c+")"+"="+w[a][b][c]);}

}
public  static void pre(){
 for(a=0;a<size;a++)
  for(b=0;b<size;b++)
   for(c=0;c<size;c++){
 if(a<=0||b<=0||c<=0){w[a][b][c]=1;}
 else if(a<b&&b<c){w[a][b][c]=w[a][b][c-1]+w[a][b-1][c-1]-w[a][b-1][c];}
 else {w[a][b][c]=w[a-1][b][c]+w[a-1][b-1][c]+w[a-1][b][c-1]-w[a-1][b-1][c-1];}
}

 }
}
 

、、input

1 1 1
2 2 2
10 4 6
50 50 50
-1 7 18
-1 -1 -1

、、output

w(1,1,1)=2
w(2,2,2)=4
w(10,4,6)=523
w(50,50,50)=1048576
w(-1,7,18)=1


0 0
原创粉丝点击