hihoCoder Challenge 20 register

Ended

Participants:577

Verdict:Accepted
Submitted:2016-05-06 19:26:23

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <bits/stdc++.h>
using namespace std;
long long pw10[50], pw8[50];
int res[100];
int main() {
    pw10[0] = 1;
    for (int i = 1; i <= 30; i++) {
        pw10[i] = pw10[i - 1] * 10;
    }
    pw8[0] = 1;
    for (int i = 1; i <= 30; i++) {
        pw8[i] = pw8[i - 1] * 8;
    }
    long long K;
    while (scanf("%lld", &K) == 1) {
        for (int len = 1; len <= 30; len++) {
            long long sum = pw10[len] - pw10[len - 1];
            sum -= pw8[len - 1] * 7;
            
            if (K > sum) {
                K -= sum;
            } else {
                bool have = false;
                for (int i = 0; i < len; i++) {
                    for (int j = 0; j < 10; j++) {
                        if (i == 0 && j == 0) {
                            continue;
                        }
                        bool thave = have;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX