답안 #283237

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
283237 2020-08-25T11:52:59 Z altalk Palindrome-Free Numbers (BOI13_numbers) C++14
45 / 100
28 ms 384 KB
#include <bits/stdc++.h>
#define loop(a, b) for(int a = 0; a < b; ++a)
#define loop1(a, b) for(int a = 1; a <= b; ++a)
#define loopc(a, c, b) for(unsigned long long a = c; a <= b; ++a)
#define loopr(a, b) for(int a = b-1; a >= 0; --a)
#define mp make_pair

using namespace std;

typedef unsigned long long ull;

deque<int> aa, bb;
ull ai, bi, p, av=0, bv=0, v;
set<int> pos;
int prev=-1, prev2=-1, as, bs;
bool af=false, bf=false;

int main() {
    cin >> ai >> bi;
    /*++bi;
    while(ai) {
        aa.push_front(ai%10);
        ai /= 10;
    }
    while(bi) {
        bb.push_front(bi%10);
        bi /= 10;
    }

    //loop(a, 10) pos.insert(a);

    as = aa.size();
    loop(a, as) {
        if (a == 0) {
            loop(h, as) {
                if (h == 0) {
                    v = aa[0]-1;
                    if (as > 1) v *= 9;
                    loopc(w, 2, as) v *= 8;
                    av = v;
                }
                else if (h == as-1) av += 10;
                else {
                    v = 9;
                    if (as > h+1) v *= 9;
                    loopc(w, h+2, as) v *= 8;
                    av += v;
                }
                //cout << av << endl;
            }
        }
        else {


            v = aa[a] - (int)(aa[a] > aa[a-1]);
            if (a > 1 && aa[a-1] != aa[a-2]) v -= (int)(aa[a] > aa[a-2]);
            loopc(w, a+1, as) v *= 8;
            av += v;

            if (aa[a] == aa[a-1]) break;
            if (a > 1 && aa[a] == aa[a-2]) break;
        }
        //cout << a << " " <<av << endl;
    }

    bs = bb.size();
    loop(b, bs) {
        //cout << bb[b]  << " bb"<< endl;
        if (b == 0) {
            loop(h, bs) {
                if (h == 0) {
                    v = bb[0]-1;
                    if (bs > 1) v *= 9;
                    loopc(w, 2, bs) v *= 8;
                    bv = v;
                }
                else if (h == bs-1) bv += 10;
                else {
                    v = 9;
                    if (bs > h+1) v *= 9;
                    loopc(w, h+2, bs) v *= 8;
                    bv += v;
                }
                //cout << bv << endl;
            }
        }
        else {


            v = bb[b] - (int)(bb[b] > bb[b-1]);
            if (b > 1 && bb[b-1] != bb[b-2]) v -= (int)(bb[b] > bb[b-2]);
            loopc(w, b+1, bs) v *= 8;
            bv += v;
            //cout << v << " v" << endl;
            if (bb[b] == bb[b-1]) break;
            if (b > 1 && bb[b] == bb[b-2]) break;
        }
        //cout << b << " " << bv << endl;
    }

    cout << bv - av << endl;*/
    int t, tot=0;
    if (bi - ai < 100001) {
        loopc(a, ai, bi) {
            t = 1;
            v = a;
            while(v) {
                aa.push_front(v%10);
                v /= 10;
            }
            if (aa.size() > 0) {
                loop(b, aa.size()-1) {
                    if (aa[b] == aa[b+1]) t = 0;
                }
            }
            if (aa.size() > 1) {
                loop(b, aa.size()-2) {
                    if (aa[b] == aa[b+2]) t = 0;
                }
            }
            tot += t;
            aa.clear();
        }
    }
    cout << tot << endl;
    return 0;
}

Compilation message

numbers.cpp: In function 'int main()':
numbers.cpp:2:37: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    2 | #define loop(a, b) for(int a = 0; a < b; ++a)
......
  112 |                 loop(b, aa.size()-1) {
      |                      ~~~~~~~~~~~~~~  
numbers.cpp:112:17: note: in expansion of macro 'loop'
  112 |                 loop(b, aa.size()-1) {
      |                 ^~~~
numbers.cpp:2:37: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    2 | #define loop(a, b) for(int a = 0; a < b; ++a)
......
  117 |                 loop(b, aa.size()-2) {
      |                      ~~~~~~~~~~~~~~  
numbers.cpp:117:17: note: in expansion of macro 'loop'
  117 |                 loop(b, aa.size()-2) {
      |                 ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 1 ms 256 KB Output is correct
3 Correct 28 ms 256 KB Output is correct
4 Correct 4 ms 256 KB Output is correct
5 Correct 1 ms 256 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 1 ms 256 KB Output is correct
8 Correct 0 ms 256 KB Output is correct
9 Correct 1 ms 256 KB Output is correct
10 Correct 0 ms 256 KB Output is correct
11 Correct 1 ms 256 KB Output is correct
12 Correct 0 ms 256 KB Output is correct
13 Correct 0 ms 256 KB Output is correct
14 Correct 4 ms 256 KB Output is correct
15 Correct 6 ms 256 KB Output is correct
16 Correct 1 ms 256 KB Output is correct
17 Correct 2 ms 256 KB Output is correct
18 Correct 0 ms 256 KB Output is correct
19 Correct 14 ms 256 KB Output is correct
20 Correct 4 ms 256 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 256 KB Output isn't correct
2 Incorrect 0 ms 256 KB Output isn't correct
3 Incorrect 0 ms 256 KB Output isn't correct
4 Incorrect 1 ms 256 KB Output isn't correct
5 Incorrect 0 ms 256 KB Output isn't correct
6 Incorrect 0 ms 256 KB Output isn't correct
7 Incorrect 0 ms 256 KB Output isn't correct
8 Incorrect 0 ms 256 KB Output isn't correct
9 Incorrect 0 ms 256 KB Output isn't correct
10 Incorrect 1 ms 256 KB Output isn't correct
11 Incorrect 0 ms 256 KB Output isn't correct
12 Incorrect 0 ms 256 KB Output isn't correct
13 Incorrect 0 ms 256 KB Output isn't correct
14 Incorrect 0 ms 256 KB Output isn't correct
15 Incorrect 0 ms 256 KB Output isn't correct
16 Incorrect 1 ms 256 KB Output isn't correct
17 Correct 0 ms 256 KB Output is correct
18 Correct 0 ms 256 KB Output is correct
19 Correct 0 ms 256 KB Output is correct
20 Correct 0 ms 256 KB Output is correct
21 Incorrect 0 ms 256 KB Output isn't correct
22 Correct 0 ms 256 KB Output is correct
23 Incorrect 0 ms 256 KB Output isn't correct
24 Correct 0 ms 256 KB Output is correct
25 Incorrect 0 ms 256 KB Output isn't correct
26 Incorrect 1 ms 256 KB Output isn't correct
27 Incorrect 0 ms 384 KB Output isn't correct
28 Incorrect 0 ms 256 KB Output isn't correct
29 Correct 0 ms 256 KB Output is correct
30 Correct 0 ms 256 KB Output is correct
31 Incorrect 0 ms 256 KB Output isn't correct
32 Correct 0 ms 256 KB Output is correct
33 Incorrect 1 ms 256 KB Output isn't correct
34 Correct 1 ms 384 KB Output is correct
35 Incorrect 1 ms 256 KB Output isn't correct
36 Incorrect 0 ms 256 KB Output isn't correct
37 Incorrect 0 ms 256 KB Output isn't correct
38 Incorrect 1 ms 256 KB Output isn't correct
39 Incorrect 0 ms 256 KB Output isn't correct
40 Correct 0 ms 256 KB Output is correct
41 Incorrect 0 ms 256 KB Output isn't correct
42 Correct 0 ms 256 KB Output is correct
43 Incorrect 0 ms 256 KB Output isn't correct
44 Incorrect 0 ms 256 KB Output isn't correct
45 Incorrect 0 ms 256 KB Output isn't correct