本文主要是介绍codeforces A. Morning,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路
- 模拟,按顺序移动移动到对应位置贡献为移动的步数,press的次数。
Think Twice, Code Once
#include<bits/stdc++.h>
#define il inline
#define get getchar
#define put putchar
#define is isdigit
#define int long long
#define dfor(i,a,b) for(int i=a;i<=b;++i)
#define dforr(i,a,b) for(int i=a;i>=b;--i)
#define dforn(i,a,b) for(int i=a;i<=b;++i,put(10))
#define mem(a,b) memset(a,b,sizeof a)
#define memc(a,b) memcpy(a,b,sizeof a)
#define pr 114514191981
#define gg(a) cout<<a,put(32)
#define INF 0x7fffffff
#define tt(x) cout<<x<<'\n'
#define ls i<<1
#define rs i<<1|1
#define la(r) tr[r].ch[0]
#define ra(r) tr[r].ch[1]
#define lowbit(x) (x&-x)
using namespace std;
typedef unsigned int ull;
typedef pair<int ,int > pii;
int read(void)
{int x=0,f=1;char c=get();while(!is(c)) (f=c==45?-1:1),c=get();while(is(c)) x=(x<<1)+(x<<3)+(c^48),c=get();return x*f;
}
void write(int x)
{if(x<0) x=-x,put(45);if(x>9) write(x/10);put((x%10)^48);
}
#define writeln(a) write(a),put(10)
#define writesp(a) write(a),put(32)
#define writessp(a) put(32),write(a)
const int N=1e6+10,M=3e4+10,SN=5e3+10,mod=998244353;
int n;
signed main()
{int T=read();while(T--){string s;cin>>s;int st=1,ans=0;dfor(i,0,s.size()-1){if(s[i]=='0') ans+=(10-st)+1,st=10;else ans+=abs((s[i]^48)-st)+1,st=s[i]^48;}writeln(ans);}return 0;
}
这篇关于codeforces A. Morning的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!