Codeforces Round #301 (Div. 2) A. Combination Lock 暴力

A. Combination Lock

Time Limit: 1 Sec  Memory Limit: 256 MB

题目连接

http://codeforces.com/contest/540/problem/A

Description

Scrooge McDuck keeps his most treasured savings in a home safe with a combination lock. Each time he wants to put there the treasures that he's earned fair and square, he has to open the lock.

Codeforces Round #301 (Div. 2) A. Combination Lock 暴力

The combination lock is represented by n rotating disks with digits from 0 to 9 written on them. Scrooge McDuck has to turn some disks so that the combination of digits on the disks forms a secret combination. In one move, he can rotate one disk one digit forwards or backwards. In particular, in one move he can go from digit 0 to digit 9 and vice versa. What minimum number of actions does he need for that?

Input

The first line contains a single integer n (1 ≤ n ≤ 1000) — the number of disks on the combination lock.

The second line contains a string of n digits — the original state of the disks.

The third line contains a string of n digits — Scrooge McDuck's combination that opens the lock.


 

Output

Print a single integer — the minimum number of moves Scrooge McDuck needs to open the lock.

 

Sample Input

5
82195
64723

 

Sample Output

13

 

HINT

 

题意

给你一个锁,问你最少转多少下,到达目标态

题解:

暴力转就好了~

代码:

 

//qscqesze

#include <cstdio>

#include <cmath>

#include <cstring>

#include <ctime>

#include <iostream>

#include <algorithm>

#include <set>

#include <vector>

#include <sstream>

#include <queue>

#include <typeinfo>

#include <fstream>

#include <map>

#include <stack>

typedef long long ll;

using namespace std;

//freopen("D.in","r",stdin);

//freopen("D.out","w",stdout);

#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)

#define maxn 200001

#define mod 10007

#define eps 1e-9

int Num;

char CH[20];

//const int inf=0x7fffffff;   //§ß§é§à§é¨f§³

const int inf=0x3f3f3f3f;

/*



inline void P(int x)

{

    Num=0;if(!x){putchar('0');puts("");return;}

    while(x>0)CH[++Num]=x%10,x/=10;

    while(Num)putchar(CH[Num--]+48);

    puts("");

}

*/

inline ll read()

{

    int x=0,f=1;char ch=getchar();

    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}

    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}

    return x*f;

}

inline void P(int x)

{

    Num=0;if(!x){putchar('0');puts("");return;}

    while(x>0)CH[++Num]=x%10,x/=10;

    while(Num)putchar(CH[Num--]+48);

    puts("");

}

//**************************************************************************************



int main()

{

    string s1,s2;

    int n=read();

    cin>>s1>>s2;

    ll ans=0;

    for(int i=0;i<n;i++)

    {

        int k=s1[i]-'0';

        int m=s2[i]-'0';

        int ans1=0;

        int ans2=0;

        while(k!=m)

        {

            k++;

            k%=10;

            ans1++;

        }

        k=s1[i]-'0';

        while(k!=m)

        {

            k--;

            if(k<0)

                k+=10;

            ans2++;

        }

        ans+=min(ans1,ans2);

    }

    cout<<ans<<endl;



}

 

你可能感兴趣的:(codeforces)