読者です 読者をやめる 読者になる 読者になる

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Beta Round #57 (Div. 2)

はい。
http://codeforces.com/contest/61

A. Ultra-Fast Mathematician

implementation

ざっくりと大意

排他的論理和

方針のようなもの

・数値で処理は桁合わせとか面倒そうだったのでstrで比較して処理させた。

python

#!/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でも試して記事追記。