天天看点

Long Number CodeForces - 1157B

Long Number

​​CodeForces - 1157B ​​

题意:英语是硬伤。错了好多次,多错了题意。可以从数字串的某一个位置开始替换一段字串f(xi),不能超过一次。输出答案。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int f[10];
int main(){
  int n,a;
  string s;
  cin>>n>>s;
  f[0]=0;
  for(int i=1;i<=9;i++) cin>>f[i];
  for(int i=0;i<n;i++){
    if(f[s[i]-'0']>s[i]-'0'){
      int j=i;
      while(f[s[j]-'0']>=s[j]-'0'){
        s[j]=f[s[j]-'0']+'0';
        j++;
      }
      break;
    }
  }
  cout<<s<<endl;
  return 0;
}