Language: C++

#include <bits/stdc++.h>
using namespace std;
using LL = long long;
#define REP(i,n) for((i)=0;(i)<(int)(n);(i)++) 
#define M 2000
bool ab[1e6],bc[1e6],ac[1e6] ;
bool match(char c1 , char c2) {
   return(c1=='?' || c2=='?' || c1==c2);
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    string a,b,c ;
    cin >> a >> b >> c ;
    int i,j;
   int A=a.length();
   int B=b.length();
   int C=c.length();
   REP(i,A) REP(j,B) if(!match(a[i],b[j]) ab[i-j+50000] = true ;
   REP(i,A) REP(j,B) if(!match(b[i],c[j]) bc[i-j+50000] = true ;
   REP(i,A) REP(j,B) if(!match(a[i],c[j]) ac[i-j+50000] = true ;
   int ans = 3*M ;
   for(i=-2*M;i<=2*M;i++) for(j=-2*M;j<=2*M;j++) if(!ab[i+50000] && !ac[j+50000] &&
   !bc[j-i+50000]){
   int l = min(0, min(i, j));
   int r = max(A, max(B + i, C + j));
   ans=min(ans, r-l);
   cout<<ans<<endl ;                    
   return 0;
}

Compiler output:
a.cc:6:9: error: conversion from 'double' to 'long unsigned int' in a converted constant expression
    6 | bool ab[1e6],bc[1e6],ac[1e6] ;
      |         ^~~
a.cc:6:9: error: could not convert '1.0e+6' from 'double' to 'long unsigned int'
    6 | bool ab[1e6],bc[1e6],ac[1e6] ;
      |         ^~~
      |         |
      |         double
a.cc:6:9: error: size of array 'ab' has non-integral type 'double'
a.cc:6:17: error: conversion from 'double' to 'long unsigned int' in a converted constant expression
    6 | bool ab[1e6],bc[1e6],ac[1e6] ;
      |                 ^~~
a.cc:6:17: error: could not convert '1.0e+6' from 'double' to 'long unsigned int'
    6 | bool ab[1e6],bc[1e6],ac[1e6] ;
      |                 ^~~
      |                 |
      |                 double
a.cc:6:17: error: size of array 'bc' has non-integral type 'double'
a.cc:6:25: error: conversion from 'double' to 'long unsigned int' in a converted constant expression
    6 | bool ab[1e6],bc[1e6],ac[1e6] ;
      |                         ^~~
a.cc:6:25: error: could not convert '1.0e+6' from 'double' to 'long unsigned int'
    6 | bool ab[1e6],bc[1e6],ac[1e6] ;
      |                         ^~~
      |                         |
      |                         double
a.cc:6:25: error: size of array 'ac' has non-integral type 'double'
a.cc: In function 'int main()':
a.cc:19:42: error: expected ';' before 'ab'
   19 |    REP(i,A) REP(j,B) if(!match(a[i],b[j]) ab[i-j+50000] = true ;
      |                                          ^~~
      |                                          ;
a.cc:4:18: error: expected primary-expression before 'for'
    4 | #define REP(i,n) for((i)=0;(i)<(int)(n);(i)++)
      |                  ^~~
a.cc:20:4: note: in expansion of macro 'REP'
   20 |    REP(i,A) REP(j,B) if(!match(b[i],c[j]) bc[i-j+50000] = true ;
      |    ^~~
a.cc:19:65: error: expected ')' before 'for'
   19 |    REP(i,A) REP(j,B) if(!match(a[i],b[j]) ab[i-j+50000] = true ;
      |                        ~                                        ^
      |                                                                 )
a.cc:4:46: error: expected ';' before ')' token
    4 | #define REP(i,n) for((i)=0;(i)<(int)(n);(i)++)
      |                                              ^
a.cc:20:4: note: in expansion of macro 'REP'
   20 |    REP(i,A) REP(j,B) if(!match(b[i],c[j]) bc[i-j+50000] = true ;
      |    ^~~
a.cc:4:46: error: expected ';' before ')' token
    4 | #define REP(i,n) for((i)=0;(i)<(int)(n);(i)++)
      |                                              ^
a.cc:20:13: note: in expansion of macro 'REP'
   20 |    REP(i,A) REP(j,B) if(!match(b[i],c[j]) bc[i-j+50000] = true ;
      |             ^~~
a.cc:21:42: error: expected ';' before 'ac'
   21 |    REP(i,A) REP(j,B) if(!match(a[i],c[j]) ac[i-j+50000] = true ;
      |                                          ^~~
      |                                          ;
a.cc:22:18: error: expected ')' before ';' token
   22 |    int ans = 3*M ;
      |                  ^
a.cc:21:24: note: to match this '('
   21 |    REP(i,A) REP(j,B) if(!match(a[i],c[j]) ac[i-j+50000] = true ;
      |                        ^
a.cc:27:4: error: 'ans' was not declared in this scope; did you mean 'abs'?
   27 |    ans=min(ans, r-l);
      |    ^~~
      |    abs
a.cc:30:2: error: expected '}' at end of input
   30 | }
      |  ^
a.cc:10:12: note: to match this '{'
   10 | int main() {
      |            ^