Codeforces Beta Round #57 (Div. 2)
はい。
http://codeforces.com/contest/61
A. Ultra-Fast Mathematician
implementation
ざっくりと大意
・排他的論理和?
方針のようなもの
・数値で処理は桁合わせとか面倒そうだったのでstrで比較して処理させた。
#!/usr/bin/env python # -*- coding: UTF-8 -*- import time import sys, io import re, math #start = time.clock() n=raw_input() w=raw_input() ans='' for i in range(len(n)): if (n[i]=='1' and w[i]=='1') or (n[i]=='0' and w[i]=='0'): ans+='0' else: ans+='1' print ans
C++11
#include<bits/stdc++.h> #include<vector> #include<list> #include<stack> #include<queue> #include<algorithm> using namespace std; int main(){ char t[101],u[101]; int l; scanf("%s",&t); scanf("%s",&u); l=strlen(t); for(int i=0;i<l;i++){ if((t[i]=='1' && u[i]=='0') || (t[i]=='0' && u[i]=='1')){ printf("1"); }else{ printf("0"); } } printf("\n",l); return 0; }
どちらかだけが1の場合を探すのはn[i]==w[i]で良かった。。。bitとかzipとか使う解法もあったらしい。
どちらかだけが1を見るのは楽に確認できることを忘れてた。codeforces鯖落ちで提出コード消えてたのでついでにC++11でも試して記事追記。