Beta Round #67-A :Life Without Zeros

解法

sprintfとsscanfでがりがり書いた。もっと楽な方法もあるかも。

#include <cstdio>
using namespace std;

int A, B, C;
char buf[20];
char str[20];

bool solve(){
	int X, Y, Z;
	sprintf(buf, "%d", A);
	int p, q;
	for(p=0, q=0; buf[p]; p++)if(buf[p]!='0'){
		str[q++] = buf[p];
	}
	str[q] = '\0';
	sscanf(str, "%d", &X);

	sprintf(buf, "%d", B);
	for(p=0, q=0; buf[p]; p++)if(buf[p]!='0'){
		str[q++] = buf[p];
	}
	str[q] = '\0';
	sscanf(str, "%d", &Y);

	sprintf(buf, "%d", C);
	for(p=0, q=0; buf[p]; p++)if(buf[p]!='0'){
		str[q++] = buf[p];
	}
	str[q] = '\0';
	sscanf(str, "%d", &Z);

	return X+Y==Z;
}

int main(){
	scanf("%d%d",&A,&B);
	C = A+B;
	puts(solve()?"YES":"NO");
	return 0;
}