CF132D.Constants in the language of Shakespeare

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Shakespeare is a widely known esoteric programming language in which programs look like plays by Shakespeare, and numbers are given by combinations of ornate epithets. In this problem we will have a closer look at the way the numbers are described in Shakespeare.

Each constant in Shakespeare is created from non-negative powers of 2 using arithmetic operations. For simplicity we'll allow only addition and subtraction and will look for a representation of the given number which requires a minimal number of operations.

You are given an integer n. You have to represent it as n = _a_1 + _a_2 + ... + a__m, where each of a__i is a non-negative power of 2, possibly multiplied by -1. Find a representation which minimizes the value of m.

莎士比亚(Shakespeare)是一种广为人知的深奥编程语言,其程序形如莎士比亚戏剧,而数字则由华丽的修饰语组合来表示。本题中,我们将更细致地考察莎士比亚语言中数字的表示方式。

莎士比亚语言中的每个常量均由 22 的非负整数次幂经算术运算构成。为简化问题,我们仅允许加法与减法,并寻求一种给定数字的表示形式,使其所需运算次数最少。

给定一个整数 nn。你需要将它表示为 n=a1+a2+⋯+amn = a_1 + a_2 + \dots + a_m,其中每个 aia_i 均为 22 的某个非负整数次幂(即形如 2k2^k,k≥0k \ge 0),并可乘以 −1-1(即允许取负)。请找出使 mm 最小的表示形式。

输入格式

The only line of input contains a positive integer n, written as its binary notation. The length of the notation is at most 106. The first digit of the notation is guaranteed to be 1.

输入仅包含一行,为一个正整数 nn 的二进制表示。该二进制表示的长度至多为 10610^6,且其首位数字保证为 11。

输出格式

Output the required minimal m. After it output m lines. Each line has to be formatted as "+2^x" or "-2^x", where x is the power coefficient of the corresponding term. The order of the lines doesn't matter.

输出所需的最小的 mm。之后输出 mm 行,每行格式为 +2^x 或 -2^x,其中 xx 是对应项的幂次系数。各行的顺序无关紧要。

输入输出样例

  • 输入#1

    1111

    输出#1

    2
    +2^4
    -2^0
  • 输入#2

    1010011

    输出#2

    4
    +2^0
    +2^1
    +2^4
    +2^6

输入解题思路,AI测评打分。不知道怎么写?

首页