ICPC 国内予選2017B ほとんど同じプログラム AOJ1617
やるだけ。シミュレーション。実装もそこまで重くなかった。
#include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll; typedef pair<int, int> P; typedef tuple<int, int, int> T; const ll MOD=1e9+7; const ll INF=1e18; int dx[]={1, -1, 0, 0}; int dy[]={0, 0, 1, -1}; int main(){ char a[210],b[210]; while(1){ cin >> a; if(a[0] == '.')break; cin >> b; int dif = 0,ai = 0,bi = 0; for(;ai < strlen(a) || bi < strlen(b);ai++,bi++){ if(a[ai] == '"' && b[bi] == '"'){ for(int i = 1;ai + i < strlen(a);i++){ if(a[ai+i] == '"' && b[bi+i] == '"'){ ai += i; bi += i; break; }else if(a[ai+i] != b[bi+i]){ dif++; if(dif >= 2) break; int add = 0; for(add = 0;a[ai+i+add] != '"';add++) ; ai = ai + i + add; for(add = 0;b[bi+i+add] != '"';add++) ; bi = bi + i + add; break; } } if(dif >= 2)break; }else if(a[ai] != b[bi]){ dif = 3; break; } } if(ai == strlen(a) && bi == strlen(b) && dif == 0){ cout << "IDENTICAL" << endl; }else if(dif == 1){ cout << "CLOSE" << endl; }else{ cout << "DIFFERENT" << endl; } } }