Violence is not explained.
#include <vector>#include <list>#include <map>#include <set>#include <queue>#include <string>#include <deque>#include <stack>#include <algorithm>#include <iostream>#include <iomanip>#include <cstdio>#include <cmath>#include <cstdlib>#include <limits.h>#include <time.h>#include <string.h>using namespace std;int lowbit(int t){return t&(-t);}int countbit(int t){return (t==0)?0:(1+countbit(t&(t-1)));}int gcd(int a,int b){return (b==0)?a:gcd(b,a%b);}#define LL long long#define PI acos(-1.0)#define N 1010#define MAX INT_MAX#define MIN INT_MIN#define eps 1e-8#define FRE freopen("a.txt","r",stdin)int main(){ char s[30]; char ss[30]; int n; while(scanf("%s%d",s,&n)!=EOF){ int i,j,k; int cnt; int len=strlen(s); int sum=0; for(i=0;i<len;i++)sum=sum*2+s[i]-'0'; if( sum % n == 0){printf("%s\n",s);continue;} else k=( sum / n + 1 )*n; while(1){ int cur=k;// cnt=0; while(cur){ ss[cnt++]=cur%2+'0'; cur>>=1; } //ss[cnt]='\0'; int l=0,r=cnt-1; while(l<len && r>=0){ if(s[l]==ss[r]){ l++; r--; } else r--; } if(l>=len)break; k+=n; } for(i=cnt-1;i>=0;i--) printf("%c",ss[i]); puts(""); } return 0;}