(Codeforce)Correct Solution?
One cold winter evening Alice and her older brother Bob was sitting at home near the fireplace and giving each other interesting problems to solve. When it was Alice's turn, she told the number n to Bob and said:
−Shuffle the digits in this number in order to obtain the smallest possible number without leading zeroes.
−No problem! − said Bob and immediately gave her an answer.
Alice said a random number, so she doesn't know whether Bob's answer is correct. Help her to find this out, because impatient brother is waiting for the verdict.
The first line contains one integer n (0≤n≤109) without leading zeroes. The second lines contains one integer m (0≤m≤109) − Bob's answer, possibly with leading zeroes.
Print OK if Bob's answer is correct and WRONG_ANSWER otherwise.
3310
1033
OK
4
5
WRONG_ANSWER
简单来说就是输入一串数然后得到无前置0的最小数。
当然,输入这么大,肯定要数组来存
idea:0是肯定是最前面的。排序得到一串,然后判断是否有0,从第一个排好的数后,插入全部0就是最小了 判断第二行的数是不是最小的
AC:
感些algorithm库 竟然可以拍字符串
#include <iostream> #include <cstring> #include <algorithm> using namespace std; int main() { char a[20], b[20]; cin >> a >> b; int len=strlen(a), n=0, flag; sort(a, a+len); for(int i=0;i<len;i++) { if(a[i]=='0') { n++; } else { flag=a[i]; break; } } a[0]=flag; if(n) { for(int i=1;n--;i++) { a[i]='0'; } } //cout << a; if(strcmp(a, b)==0) cout << "OK"; else cout << "WRONG_ANSWER"; return 0; }