QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#613212 | #8251. Missing Number | eggtoast | WA | 0ms | 3852kb | C++17 | 1.9kb | 2024-10-05 13:45:29 | 2024-10-05 13:45:43 |
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 << 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';
}
}
详细
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3852kb
input:
1 891112
output:
10
result:
wrong answer 1st lines differ - expected: '1', found: '10'