Nội dung Bài tập
Mã:
DIVPOLY
Tên:
Chia hai đa thức
Dạng thi:
oi
Thang điểm:
10 điểm
Giới hạn thời gian:
1 giây
Giới hạn bộ nhớ:
256 MB
Được tạo bởi:
22120370

DIVPOLY - Chia hai đa thức

Một đa thức Q(x) được gọi là nhân tử của một đa thức P(x) khác khi phép tính P(x)/Q(x) cho kết quả là một đa thức. Cho hai đa thức P(x)Q(x), nếu Q(x) là nhân tử của P(x), in ra “yes” và đa thức kết quả P(x)/Q(x) ra màn hình, nếu không thì in “no” ra màn hình.

Quy tắc của đa thức:

  • Một đa thức là biểu thức gồm các phép tính cộng trừ giữa các đơn thức.
  • Một đơn thức (đơn giản) có dạng ax^n với a là hệ số, có kiểu số nguyên, n là số mũ, có kiểu là số nguyên không âm.
  • Đơn thức dạng 0x^n được viết là 0.
  • Đơn thức dạng ax^0 được viết là a.
  • Đơn thức dạng ax^1 được viết là ax.
  • Đơn thức dạng 1x^n, -1x^n được viết là x^n, -x^n.
  • Để thuận tiện cho việc đọc và viết, một đa thức được viết dưới dạng duy nhất, với các đơn thức được viết từ đơn thức có số mũ lớn nhất tới đơn thức có số mũ nhỏ nhất, các đơn thức có cùng số mũ sẽ được rút gọn về một đơn thức, giữa một đơn thức và một phép ‘+’, ’-‘ không có dấu cách nào, và đơn thức sau một dấu ‘-‘ sẽ phải hệ số dương. VD: các đa thức “-3x+2x^2+1”, “2x^2 -1x^1 - 2x^1 - -1x^0”  sẽ được viết dưới dạng “2x^2-3x+1”.
  • Không có dấu ‘(‘ và ‘)’ trong đơn thức.

Dữ liệu đầu vào:

  • Dòng thứ nhất là đa thức P(x) được viết đúng quy tắc.
  • Dòng thứ hai là đa thức Q(x) được viết đúng quy tắc.

Dữ liệu đầu ra:

  • Dòng đầu là “yes” hoặc “no”.
  • Dòng thứ hai là kết quả phép chia đa thức nếu dòng đầu là “yes”.

Gợi ý:

  • Sử dụng hai struct để lưu đa thức và đơn thức.

Đảm bảo:

  • Các hệ số của đơn thức kết quả sẽ được đảm bảo là số nguyên.
  • Q(x) khác 0. 
  • Bậc của các đa thức không quá 200.

Ví dụ:


Input

Output

x^2-1

x+1

yes

x-1


Input

Output

1

1

yes

1


Input

Output

x^3+x^2-5x+9

x^2+2x-3

no





    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận