結果
| 問題 | No.40 多項式の割り算 | 
| コンテスト | |
| ユーザー |  threepipes_s | 
| 提出日時 | 2015-02-17 01:48:23 | 
| 言語 | Java (openjdk 23) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 124 ms / 5,000 ms | 
| コード長 | 2,420 bytes | 
| コンパイル時間 | 2,486 ms | 
| コンパイル使用メモリ | 83,312 KB | 
| 実行使用メモリ | 52,608 KB | 
| 最終ジャッジ日時 | 2024-06-23 19:50:33 | 
| 合計ジャッジ時間 | 6,914 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 32 | 
ソースコード
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
public class Main {
	public static boolean result[];
	public static int dp[][];
	public static void main(String[] args) throws NumberFormatException, IOException{
		ContestScanner in = new ContestScanner();
		int d = in.nextInt();
		if(d < 3){
			System.out.println(d);
			for(int i=0; i<=d; i++){
				System.out.print(in.nextInt()+" ");
			}
			System.out.println();
			return;
		}
		int[] div = {
				1, 0, -1, 0
		};
		int[] siki = new int[d+1];
		for(int i=0; i<=d; i++){
			siki[i] = in.nextInt();
		}
		for(int i=d; i>=3; i--){
			for(int j=3; j>=0; j--){
				siki[i-j] -= siki[i]*div[j];
			}
		}
		StringBuilder sb = new StringBuilder();
		int max = 0;
		for(int i=0; i<=3; i++){
			if(siki[i] != 0) max = i;
		}
		for(int i=0; i<=max; i++){
			sb.append(siki[i]+" ");
		}
		System.out.println(max);
		System.out.println(sb.toString());
	}
}
class MyComp implements Comparator<int[]>{
	public int compare(int[] a, int[] b) {
		return a[0] - b[0];
	}
}
class Reverse implements Comparator<Integer>{
	public int compare(Integer arg0, Integer arg1) {
		return arg1 - arg0;
	}
}
class Node{
	int id;
	List<Node> edge = new ArrayList<Node>();
	public Node(int id){
		this.id = id;
	}
	public void createEdge(Node node){
		edge.add(node);
	}
}
class ContestScanner{
	private BufferedReader reader;
	private String[] line;
	private int idx;
	public ContestScanner() throws FileNotFoundException{
		reader = new BufferedReader(new InputStreamReader(System.in));
	}
	public ContestScanner(String filename) throws FileNotFoundException{
		reader = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
	}
	
	public String nextToken() throws IOException{
		if(line == null || line.length <= idx){
			line = reader.readLine().trim().split(" ");
			idx = 0;
		}
		return line[idx++];
	}
	public long nextLong() throws IOException, NumberFormatException{
		return Long.parseLong(nextToken());
	}
	public int nextInt() throws NumberFormatException, IOException{
		return (int)nextLong();
	}
	public double nextDouble() throws NumberFormatException, IOException{
		return Double.parseDouble(nextToken());
	}
}
            
            
            
        