CSES - E4590 2018 2 - Results
Submission details
Task:ModAdd
Sender:lautat
Submission time:2018-09-22 13:28:52 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.01 sdetails
#2ACCEPTED0.07 sdetails
#3ACCEPTED0.09 sdetails
#4ACCEPTED0.07 sdetails
#5ACCEPTED0.07 sdetails
#6ACCEPTED0.07 sdetails
#7ACCEPTED0.07 sdetails
#8ACCEPTED0.04 sdetails
#9ACCEPTED0.07 sdetails
#10ACCEPTED0.04 sdetails

Code

#include <algorithm>
#include <cstdio>
#include <cstddef>
#include <cstdint>
#include <iostream>
#include <vector>

using std::cout;
using std::endl;
using std::ios;
using std::swap;
using std::vector;


vector<uint8_t> read_number() {
    vector<uint8_t> result;

    for (int c; (c = getchar()) != '\n' && c != EOF;) {
        result.push_back(c - '0');
    }

    return result;
}


int main() {
    ios::sync_with_stdio(false);

    vector<uint8_t> a = read_number();
    vector<uint8_t> b = read_number();

    if (a.size() < b.size()) {
        swap(a, b);
    }

    int64_t a_i = 0;
    int64_t b_i = (int64_t) b.size() - (int64_t) a.size();
    bool zero = true;

    while ((size_t) a_i < a.size()) {
        int result;
        if (b_i < 0) {
            result = (int) a[a_i];
        } else {
            result = (int) ((a[a_i] + b[b_i]) % 10);
        }

        if (result != 0 || !zero) {
            cout << result;
            zero = false;
        }

        a_i++;
        b_i++;
    }

    if (zero) {
        cout << 0;
    }

    cout << endl;

    return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
3797629225
9766508989

correct output
2453127104

user output
2453127104

Test 2

Verdict: ACCEPTED

input
552139016901047883384892240490...

correct output
552139016901047883384892240490...

user output
552139016901047883384892240490...

Test 3

Verdict: ACCEPTED

input
860793811134668093345482099582...

correct output
487710306894083216377653715430...

user output
487710306894083216377653715430...

Test 4

Verdict: ACCEPTED

input
2
870841652294197226626825161089...

correct output
870841652294197226626825161089...

user output
870841652294197226626825161089...

Test 5

Verdict: ACCEPTED

input
0
404905566051213252279994991040...

correct output
404905566051213252279994991040...

user output
404905566051213252279994991040...

Test 6

Verdict: ACCEPTED

input
430112167406460960088878635088...

correct output
430112167406460960088878635088...

user output
430112167406460960088878635088...

Test 7

Verdict: ACCEPTED

input
867016005819001635643395991596...

correct output
999999999999999999999999999999...

user output
999999999999999999999999999999...

Test 8

Verdict: ACCEPTED

input
120453771521975552204976752778...

correct output
0

user output
0

Test 9

Verdict: ACCEPTED

input
239979749009277805816504910098...

correct output
239979749009277805816504910098...

user output
239979749009277805816504910098...

Test 10

Verdict: ACCEPTED

input
990963963634143754324162574923...

correct output
818540385713473048971388312665...

user output
818540385713473048971388312665...