QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#613346 | #8251. Missing Number | eggtoast | RE | 0ms | 3720kb | C++17 | 2.0kb | 2024-10-05 13:56:48 | 2024-10-05 13:58:37 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
int main(){
int t;
cin >> t;
while(t--){
string s;
cin >> s;
int n = s.size() / 2;
//cout << s << '\n';
int flg = 0;
int start = 0;
while(n >= 1){
string sub = (s.substr(0, n));
string other = (s.substr(n, n));
int x1 = stoi(sub);
int x2 = stoi(other);
//cout << "x1 " << x1 << ' ' << "x2 " << x2 << '\n';
if((x2 == x1 + 1) || (x2 == x1 + 2)){
if(x2 == x1 + 1){
flg = 1; //we know the starting point, so we look for the missing number
start = x1;
} else {
flg =2; //case where 2nd number is missing
start = x1;
}
break;
}
n--;
}
//if flg == 0, no missing numbers
if(flg == 0){
cout << 0 << '\n';
continue;
} else if (flg == 1){
//we loop from start to end to find the missing number
//pop off numbers until we find the missing number.
int curr = start;
while(!s.empty()){
int digitsLeft = log10(curr) + 1;
//cout << s << '\n';
if(stoi(s.substr(0, digitsLeft)) != curr){
//cout << curr << " and " << s.substr(0, digitsLeft) << '\n';
cout << 1 << '\n';
cout << curr << '\n';
break;
}
s.erase(0, digitsLeft);
curr++;
}
//if string is empty that means no missing numbers either
if(s.empty())
cout << 0 << '\n';
} else if (flg == 2){
cout << start + 1 << '\n';
continue;
}
//cout << "flag is " << flg << '\n';
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3720kb
input:
1 891112
output:
1 10
result:
ok 2 lines
Test #2:
score: -100
Runtime Error
input:
31408 787187871978720787217872278723787247872678727 8787287874878758787687877 834918349283493834958349683497 295982959929600296012960229604 602160226023602460256027602860296030 504545045550456504575045850459504605046250463 17937179381794017941 5226152262522635226552266 304693047030471304733047430475...