#!/usr/bin/env python3 # Načtení vstupu: N = int(input()) cisloString = input() # Technikálie: Rozebereme neměnitelný string do pole cislo = [] for i in range(N): cislo.append(cisloString[i]) # Postupně projdeme číslo a místo všech otazníků doplníme 0 (se speciální # výjimkou otazníku na začátku čísla). Současně si budeme počítat i ciferný # součet. # Budeme si ale pamatovat pozici posledního otazníku a až projdeme celé číslo, # vrátíme se na tuto pozici a číslo změníme na jiné, aby seděla dělitelnost # ciferného součtu 9 (a protože může i ciferný součet být velký, budeme ho # raději průběžně modulit 9). # Speciální ošetření prvního znaku: if cislo[0] == '?': cislo[0] = '1' posledniOtaznik = 0 cifernySoucet = int(cislo[0]) # Od druhého znaku dál: for i in range(1, N): if cislo[i] == '?': posledniOtaznik = i cislo[i] = '0' cifernySoucet = (cifernySoucet + int(cislo[i])) % 9 # Vrátíme se k poslednímu otazníku a změníme ho tak, aby byl ciferný součet # dělitelný 9: rozdil = (9 - cifernySoucet) % 9 if posledniOtaznik == 0: # Speciální ošetření pro první číslo (které je == 1) cislo[0] = str(1 + rozdil) else: # Na zbylých pozicích jsme otazníky nahrazovali nulami cislo[posledniOtaznik] = str(rozdil) # Vypíšeme výsledné číslo: print(''.join(cislo))