Language: C++

#include <bits/stdc++.h>

#define MOD 1000000007
#define INF (0x7fffffff)
#define NINF (1<<31)
#define INFL (0x7fffffffffffffff)
#define NINFL (1LL<<63)
#define MAX 100000000

#define pe(str) return cout<<(str)<<endl,0
#define px(str) cout<<(str)<<endl,exit(0)
#define accu(ac,v) cout<<setprecision(ac)<<v<<endl
#define bpc(a) __builtin_popcount(a)
#define pr(str) cout<<(str)<<endl
#define prpr(str) cout<<str<<endl
#define db(str) cerr<<"debug:"<<(str)<<endl
#define dbdb(str) cerr<<"debugs:"<<str<<endl
#define re(i,n) for(int i=0;i<(n);i++)
#define rre(i,n) for(int i=(n);i>=0;i--)
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define rrep(i,a,b) for(int i=(b);i>=(a);i--)
#define bw(a,b,c) (((a)<=(b))&&((b)<=(c)))
#define hello cout<<"hello"<<endl
#define spre(a) setprecision(a)
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(),(a).rend()
#define IF(C,T,F) ((C)?(T):(F))
#define max3(a,b,c) max((a),max((b),(c)))
#define min3(a,b,c) min((a),min((b),(c)))
#define max4(a,b,c,d) max((a),max((b),max((c),(d))))
#define min4(a,b,c,d) min((a),min((b),min((c),(d))))
#define enl cout<<endl
#define declare(t,n) t n;cin>>n
#define EPS 1e-6
#define EPSIN(a,b) ((b)-EPS<=(a)&&(a)<=(b)+EPS)

using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pii;
typedef complex<int> point;

template<class InputIterator>
void dump(InputIterator first,InputIterator last,char delim=' '){
	for(InputIterator it=first;it!=last;it++){
		if(it!=first)cout<<delim;
		cout<<*it;
	}
}

ull p(ull x,ull y){
	if(y==0) return 1;
	ull A=p(x,y/2)%MOD;
	// return (y&1?((A*A)%MOD*x)%MOD: (A*A)%MOD);
	return (y&1?((A*A)*x):(A*A));
}

template<class T>
void swp(T &a,T &b){
	T t=a; a=b; b=t;
}

template<class T>
int h(T first,string t){
	T it=first;
	int c=0;
	for(int i=0;i<t.size();i++){
		if(*it!=t[i]) c++;
		it++;
	}
	return c;
}

ll gcd(ll a,ll b){
	if(b==0) return a;
	return gcd(b,a%b);
}

vector<string> scan(string s){
	std::vector<string> v1;
	string t="";
	bool f=false;
	for(int i=0;i<s.size();i++){
		t+=s[i];

	}
}


int main(void){
	string s,t;
	while(cin>>s,s!="."){
		cin>>t;
		if(s==t){cout<<"IDENTICAL"<<endl;continue;}
		std::vector<string> v1[2];
		std::vector<string> v2[2];
		bool b;
		string temp;
		//*** v1 ***
		b=false;
		temp="";
		re(i,s.size()){
			if(s[i]=='\"'){
				b=!b;
				v1[b].push_back(temp);
				temp="";
			}
			else temp+=s[i];
		}
		if(s[s.size()-1]!='\"')v1[!b].push_back(temp);
		//*** v2 ***
		b=false;
		temp="";
		re(i,t.size()){
			if(t[i]=='\"'){
				b=!b;
				v2[b].push_back(temp);
				temp="";
			}
			else temp+=t[i];
		}
		if(t[t.size()-1]!='\"')v2[!b].push_back(temp);

		if(v1[0].size()!=v2[0].size()){cout<<"DEFFERENT"<<endl;goto NET;}
		if(v1[1].size()!=v2[1].size()){cout<<"DEFFERENT"<<endl;goto NET;}
		re(i,v1[1].size()){ // program
			if(v1[1][i]!=v2[1][i]){cout<<"DEFFERENT"<<endl;goto NET;}
		}
		int aa=0;
		re(i,v1[0].size()){ // strings
			if(v1[0][i]!=v2[0][i]) aa++;
			if(aa==2){cout<<"DEFFERENT"<<endl;goto NET;}
		}
		cout<<(aa==1?"CLOSE":"IDENTICAL")<<endl;

		// dump(v1[0].begin(),v1[0].end(),'+');enl;
		// dump(v1[1].begin(),v1[1].end(),'+');enl;
		// dump(v2[0].begin(),v2[0].end(),'+');enl;
		// dump(v2[1].begin(),v2[1].end(),'+');enl;
NET:;
	}
	return 0;
}



Compiler output:
a.cc: In function 'std::vector<std::__cxx11::basic_string<char> > scan(std::string)':
a.cc:89:1: warning: no return statement in function returning non-void [-Wreturn-type]
   89 | }
      | ^
a.cc: In function 'int main()':
a.cc:142:1: error: jump to label 'NET'
  142 | NET:;
      | ^~~
a.cc:129:77: note:   from here
  129 |                         if(v1[1][i]!=v2[1][i]){cout<<"DEFFERENT"<<endl;goto NET;}
      |                                                                             ^~~
a.cc:131:21: note:   crosses initialization of 'int aa'
  131 |                 int aa=0;
      |                     ^~
a.cc:142:1: error: jump to label 'NET'
  142 | NET:;
      | ^~~
a.cc:127:77: note:   from here
  127 |                 if(v1[1].size()!=v2[1].size()){cout<<"DEFFERENT"<<endl;goto NET;}
      |                                                                             ^~~
a.cc:131:21: note:   crosses initialization of 'int aa'
  131 |                 int aa=0;
      |                     ^~
a.cc:142:1: error: jump to label 'NET'
  142 | NET:;
      | ^~~
a.cc:126:77: note:   from here
  126 |                 if(v1[0].size()!=v2[0].size()){cout<<"DEFFERENT"<<endl;goto NET;}
      |                                                                             ^~~
a.cc:131:21: note:   crosses initialization of 'int aa'
  131 |                 int aa=0;
      |                     ^~