Submission #112038

#TimeUsernameProblemLanguageResultExecution timeMemory
112038fredbrLun (COCI19_lun)C++17
25 / 50
3 ms384 KiB
#include <bits/stdc++.h>

using namespace std;

bool valid(string const& s) {
    auto f = [](int x) {
        if (x >= 10) return x/10+x%10;
        return x;
    };

    int acc = 0;
    for (int i = 0; i < s.size()-1; i++) {
        int x = s[i]-'0';

        if ((i&1)) acc += f(2*x);
        else acc += x;
    }

    acc = acc*9%10;

    return acc == s.back()-'0';
}

int main() {
    int n;
    cin >> n;

    string s;
    cin >> s;

    int xpos = 0;
    for (int i = 0; i < n; i++) {
        if (s[i] >= '0' and s[i] <= '9') continue;
        xpos = i;
    }

    for (int i = '1'; i <= '9'; i++) {
        s[xpos] = i;
        if (valid(s)) {
            cout << char(i) << "\n";
            return 0;
        }
    }

}

Compilation message (stderr)

lun.cpp: In function 'bool valid(const string&)':
lun.cpp:12:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < s.size()-1; i++) {
                     ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...