首页 > 代码库 > Codeforces Round #279 (Div. 2) C. Hacking Cypher 机智的前缀和处理

Codeforces Round #279 (Div. 2) C. Hacking Cypher 机智的前缀和处理

#include <cstdio>#include <cmath>#include <cstring>#include <ctime>#include <iostream>#include <algorithm>#include <set>#include <vector>#include <sstream>#include <queue>#include <typeinfo>#include <fstream>typedef long long ll;using namespace std;//freopen("D.in","r",stdin);//freopen("D.out","w",stdout);#define io_speed ios_base::sync_with_stdio(0);cin.tie(0)string s;int a,b,vis[1000005];int main(){    io_speed;    cin>>s;    cin>>a>>b;    int base=1,ans=0,len = s.size();    memset(vis,0,sizeof(vis));    for(int i=len-1;i>0;i--){        ans = ( ans + (s[i] - 0)*base ) % b;        vis[i] = ans;        base = base*10%b;    }    ans=0;    for(int i=0;i<len-1;i++){        ans = ( ans*10 + s[i]-0 ) % a;        if( ans==0 && vis[i+1]==0 && s[i+1]!=0 ){            cout<<"YES\n";            cout<<s.substr(0,i+1)<<endl;            cout<<s.substr(i+1,len-i-1)<<endl;            return 0;        }    }    puts("NO");    return 0;}

 

Codeforces Round #279 (Div. 2) C. Hacking Cypher 机智的前缀和处理