답안 #871349

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
871349 2023-11-10T15:45:44 Z hvmegy Trol (COCI19_trol) C++17
30 / 50
1000 ms 348 KB
// [ нvмegy ]
// OLPCHUYENTIN2023 GOTOHUE
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
 
#define int long long
#define all(c) c.begin(), c.end()
#ifdef hvmegy
#define dbg(...) logger(#__VA_ARGS__, __VA_ARGS__)
template<typename ...Args>
void logger(string vars, Args&&... values) {
        cerr << "[" << vars << " : ";
        string delim = "";
        (..., (cerr << delim << values, delim = ", "));
        cerr << "]" << '\n'; 
}
#else
#define dbg(...)
#endif
 
mt19937_64 rnd(chrono::steady_clock::now().time_since_epoch().count());
 
int GOTOHUE();
void init(); 
 
int32_t main()
{
        cin.tie(0) -> sync_with_stdio(0); 
        cout << fixed << setprecision(15);
        
        #ifdef hvmegy
        freopen("input.txt", "r", stdin); 
        freopen("output.txt", "w", stdout); 
        freopen("log.txt", "w", stderr);
        #endif



        // =============================
                bool MULTITEST = 1; 
        // =============================
        
        init(); 
        int OLPCHUYENTIN2023 = 1; 
        if (MULTITEST) cin >> OLPCHUYENTIN2023; 
        for (int i = 1; i <= OLPCHUYENTIN2023; i++) {
                if (GOTOHUE()) break;
                #ifdef hvmegy
                        cout << "--ENDTEST--" << '\n';
                        cerr << "--ENDTEST--" << '\n';
                #endif
        }

        #ifdef hvmegy
                cerr << '\n' << clock() * 1000.0 / CLOCKS_PER_SEC << "ms" << '\n';
        #endif

        return 0;
}

int pow10[20]; 

void init() { 
        pow10[0] = 1; 
        for (int i = 1; i <= 18; i++) { 
                pow10[i] = pow10[i - 1] * 10; 
        }
}

int GOTOHUE() { 
        int l, r; 
        cin >> l >> r; 

        auto f = [&](int num) { 
                dbg(num); 
                while (num >= 10) { 
                        int n = num; 
                        int sum = 0; 
                        while (n) { 
                                sum += n % 10; 
                                n /= 10; 
                        }
                        num = sum; 
                }
                dbg(num); 
                return num; 
        };
        int sum = 0; 
        for (int i = l; i <= r; i++) { 
                sum += f(i); 
        }
        cout << sum << '\n';
        return 0; 
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 2 ms 348 KB Output is correct
4 Execution timed out 1038 ms 344 KB Time limit exceeded
5 Execution timed out 1008 ms 344 KB Time limit exceeded