| Task: | Lista |
| Sender: | tonero |
| Submission time: | 2022-01-22 15:33:04 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | WRONG ANSWER | 0 |
| #3 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.01 s | 1, 2, 3 | details |
| #2 | WRONG ANSWER | 0.01 s | 2, 3 | details |
| #3 | WRONG ANSWER | 0.01 s | 3 | details |
| #4 | WRONG ANSWER | 0.01 s | 1, 2, 3 | details |
| #5 | WRONG ANSWER | 0.01 s | 1, 2, 3 | details |
| #6 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #7 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #8 | WRONG ANSWER | 0.01 s | 3 | details |
| #9 | WRONG ANSWER | 0.01 s | 3 | details |
| #10 | WRONG ANSWER | 0.01 s | 3 | details |
Code
#include <bits/stdc++.h>
using namespace std;
#define ull unsigned long long
#define ll long long
int ans[1001];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cin >> noskipws;
int n;
cin >> n;
cin.ignore(1);
ll prev = 0;
char digP[10] = {};
vector<ll> ans;
ans.reserve(n);
for (int i = 0; i < n; ++i){
ll num = 0;
vector<char> numstck;
vector<pair<int,int>> qIn;
char u = 0;
char c;
cin >> c;
while(c != '\n'){
numstck.emplace_back(c);
++u;
cin >> c;
}
char qdig[10];
int y = 0;
for (auto j = numstck.rbegin(); j != numstck.rend(); ++j, ++y) {
if(*j == '?'){
qIn.emplace_back(y, 0);
qdig[y] = 0;
}else{
num += pow(10, (y))*(*j-'0');
qdig[y] = *j-'0';
}
}
int f = y-1;
auto iter = numstck.begin();
if(*iter == '?'){
while(*next(iter) == '?' && next(iter) != numstck.end()){
--f;
++iter;
}
num += pow(10, f);
qIn.pop_back();
qIn.emplace_back(f, 1);
qdig[f] = 1;
}
ll n2 = prev;
int in = 0;
if(num > prev){
goto suc;
}
while (n2 >= 10) {
if((char) (n2 % 10) > qdig[in]){
num += pow(10, in)*(((char) (n2 % 10))-qdig[in]);
qdig[in] = (char) (n2 % 10);
}
n2 /= 10;
++in;
}
for (const auto &item : qIn){
while(qdig[item.first] < 9){
++qdig[item.first];
num += pow(10, item.first);
if(num > prev){
goto suc;
}
}
}
if(num > prev){
goto suc;
}
cout << "IMPOSSIBLE";
flush(std::cout);
return 0;
suc:
prev = num;
fill(digP, digP+numstck.size(), 0);
n2 = num;
in = numstck.size()-1;
while (n2 != 0) {
digP[in] = (n2 % 10);
n2 /= 10;
--in;
}
ans.emplace_back(num);
}
for (const auto &item : ans){
cout << item << "\n";
}
flush(std::cout);
}Test details
Test 1
Group: 1, 2, 3
Verdict: WRONG ANSWER
| input |
|---|
| 100 ?? ?? ?? ?? ... |
| correct output |
|---|
| 10 11 12 13 20 ... |
| user output |
|---|
| IMPOSSIBLE |
Test 2
Group: 2, 3
Verdict: WRONG ANSWER
| input |
|---|
| 1000 8?? ??8? ???? ???? ... |
| correct output |
|---|
| 800 1080 1081 1082 1083 ... |
| user output |
|---|
| IMPOSSIBLE |
Test 3
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 1000 ?????? ?????9? ??98??? ?????5? ... |
| correct output |
|---|
| 100000 1000090 1098000 1098050 4100001 ... |
| user output |
|---|
| IMPOSSIBLE |
Test 4
Group: 1, 2, 3
Verdict: WRONG ANSWER
| input |
|---|
| 100 ? ? ? ? ... |
| correct output |
|---|
| 1 2 3 4 5 ... |
| user output |
|---|
| IMPOSSIBLE |
Test 5
Group: 1, 2, 3
Verdict: WRONG ANSWER
| input |
|---|
| 2 ??? ?? |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| 1 2 |
Test 6
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 3 123 ??? 124 |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 7
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 5 1?? ??? 2?? ??? ... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 8
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 1000 ????????? ????????? ????????? ????????? ... |
| correct output |
|---|
| 100000000 100000001 100000002 100000003 100000004 ... |
| user output |
|---|
| IMPOSSIBLE |
Test 9
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 900 ???000000 ???000000 ???000000 ???000000 ... |
| correct output |
|---|
| 100000000 101000000 102000000 103000000 104000000 ... |
| user output |
|---|
| IMPOSSIBLE |
Test 10
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 1000 ???1????? ???0????? ???1????? ???0????? ... |
| correct output |
|---|
| 100100000 101000000 101100000 102000000 102100000 ... |
| user output |
|---|
| IMPOSSIBLE |
