A. Chewbaсca and Number
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Luke Skywalker gave Chewbacca an integer number x. Chewbacca isn't good at numbers but he loves inverting digits in them. Inverting digit t means replacing it with digit 9 - t.
Help Chewbacca to transform the initial number x to the minimum possible positive number by inverting some (possibly, zero) digits. The decimal representation of the final number shouldn't start with a zero.
Input
The first line contains a single integer x (1 ≤ x ≤ 1018) — the number that Luke Skywalker gave to Chewbacca.
Output
Print the minimum possible positive number that Chewbacca can obtain after inverting some digits. The number shouldn't contain leading zeroes.
Sample test(s)
input
27
output
22
input
4545
output
4444
最近不知道怎么了,也是醉了,BCBC坑,CFCF坑。。在家脑袋就不灵光。。
. The decimal representation of the final number shouldn't start with a zero.
这句话····我一直卡在这里,题意要求不能以0为开始,所以我们特判第一位,如果是9就不变,否则如果大于5就用,9减去。
剩下的如果大于5就用9减去就可以了。
#include<iostream> #include<cstdio> #include<string.h> #include<string> #include<stack> #include<set> #include<algorithm> #include<cmath> #include<vector> #include<map> #define ll __int64 #define lll unsigned long long #define MAX 1000009 #define eps 1e-8 using namespace std; int main() { string a,b; while(cin>>a) { if(a[0]!='9'&&a[0]>='5') { a[0] = (9 - (a[0] - '0')) + '0'; } cout<<a[0]; for(ll i = 1; i<a.size(); i++) { if(a[i]>='5') { a[i] = (9 - (a[i] - '0')) + '0'; } cout<<a[i]; } cout<<endl; } return 0; }