diff --git a/server/internal/metrics/src/DiffLibImpl.cpp b/server/internal/metrics/src/DiffLibImpl.cpp index c65ebef9a70958ed396dc8f9f733c2f7197ae811..8b2febbbe496d9204bb0c4f55fc8398d53ad4683 100644 --- a/server/internal/metrics/src/DiffLibImpl.cpp +++ b/server/internal/metrics/src/DiffLibImpl.cpp @@ -164,6 +164,16 @@ std::pair FoundSame::tokens2html() { while ((pos = i.token2.first.find(">")) != std::string::npos) { i.token2.first.replace(pos, 1, ">"); } + + if (i.token1.first == "%") { + i.token1.first = ""; + i.token1.second = -1; + } + + if (i.token2.first == "#") { + i.token2.first = ""; + i.token2.second = -1; + } } std::string res1 = "\n" @@ -182,7 +192,13 @@ std::pair FoundSame::tokens2html() { line++; } } - res1 += i.token1.first, res1 += " "; + if (i.op == "I") res1 += teg_I; + if (i.op == "D") res1 += teg_D; + if (i.op == "C") res1 += teg_C; + if (i.op == "R") res1 += teg_R; + res1 += i.token1.first; + if (!i.token1.first.empty()) res1 += " "; + res1 += close_teg; } line = res_alignment[0].token2.second; @@ -199,7 +215,7 @@ std::pair FoundSame::tokens2html() { if (i.op == "C") res2 += teg_C; if (i.op == "R") res2 += teg_R; res2 += i.token2.first; - res2 += " "; + if (!i.token2.first.empty()) res2 += " "; res2 += close_teg; } diff --git a/server/internal/metrics/testProgs/output/out1.txt b/server/internal/metrics/testProgs/output/out1.txt index 823d512077897abe347cd365488ffe4382e68322..c8da48c13ca468c1d3663df6290eac6d4717e7fb 100644 --- a/server/internal/metrics/testProgs/output/out1.txt +++ b/server/internal/metrics/testProgs/output/out1.txt @@ -1,48 +1,44 @@ -
#include <iostream>
-#include <vector>
-%
-%
-using namespace std ;
-bool check ( vector < int >
+
#include <iostream>
+#include <vector>

+using namespace std ;

-s , int i ,
-int j ) { for ( int
-k = 0 ; k < s . size ( ) ; k
-++ ) { if ( s
-[ k ] != i && s [ k ] != j && s [ k
-] % i == 0 && j % s
-[ k ] == 0 ) { return 0 ; } } return 1 ; } int
-main ( ) { long long n ;
-cin > > n ;
-vector < int > s ;
-for ( int i = 1 ; i <= n ; i ++ ) {
-if ( n % i == 0 ) {
-s . push_back ( i % % ) ;
-}
-}
-vector < pair <
-int , int > > ans ;
-for ( int i = 0 ; i < s . size ( ) %
-% ; i ++ ) {
-for ( int j = i + 1 ; j < s . size ( ) ; j ++ ) {
-if ( % s [ j ] % s [ i ] == 0 && check ( s , s [ i ] , s [ j ] ) )
-{ ans . push_back
-( { s [ i ] % % % % ,
-s [ j ] } ) ;
-} } } cout < < "graph {" < < endl ;
-for ( int i = 0 ;
-% i < s . size (
-) ; i ++ ) { cout < < s [ i ] < <
-endl ; } for ( int i = 0 ; i <
-ans . size ( ) ; i
-++
-)
+bool check ( vector < int > s , int i , int j ) {
+for ( int k = 0 ; k < s . size ( ) ; k ++ ) {
+if ( s [ k ] != i && s [ k ] != j && s [ k ] i == 0 && j s [ k ] == 0 ) {
+return 0 ;
+}
+}
+return 1 ;
+}

-{
-cout < < % ans [ i ] . first < < "--" < < ans [ i ] . second < < endl ; } cout <
-< "}" ;
-} <EOF>
+int main ( ) {
+long long n ;
+cin > > n ;
+vector < int > s ;
+for ( int i = 1 ; i <= n ; i ++ ) {
+if ( n i == 0 ) {
+s . push_back ( i ) ;
+}
+}
+vector < pair < int , int > > ans ;
+for ( int i = 0 ; i < s . size ( ) ; i ++ ) {
+for ( int j = i + 1 ; j < s . size ( ) ; j ++ ) {
+if ( s [ j ] s [ i ] == 0 && check ( s , s [ i ] , s [ j ] ) ) {
+ans . push_back ( { s [ i ] , s [ j ] } ) ;
+}
+}
+}
+cout < < "graph {" < < endl ;
+for ( int i = 0 ; i < s . size ( ) ; i ++ ) {
+cout < < s [ i ] < < endl ;
+}
+
+for ( int i = 0 ; i < ans . size ( ) ; i ++ ) {
+cout < < ans [ i ] . first < < "--" < < ans [ i ] . second < < endl ;
+}
+cout < < "}" ;
+} <EOF>
\ No newline at end of file diff --git a/server/internal/metrics/testProgs/output/out2.txt b/server/internal/metrics/testProgs/output/out2.txt index 3b1cef2cf4c441ed269bf8c9937889b58b6e4b5d..cbc62ede2c940514901a99cfa561fa342b050dc6 100644 --- a/server/internal/metrics/testProgs/output/out2.txt +++ b/server/internal/metrics/testProgs/output/out2.txt @@ -1,48 +1,48 @@ -
#include <iostream>
-#include <vector>
-#include<algorithm>
-#include<cmath>
-using namespace std ;
-# const int inf = 1e9 ;
+
#include <iostream>
+#include <vector>
+#include<algorithm>
+#include<cmath>
+usingnamespacestd;
+constintinf=1e9;


-int main ( ) {
-int n , s , f ;
-cin > > n > > s # > > f ; #
-s -- ; f -- ;
-vector < int > d ( n , inf ) , p ( n ) ;
-vector < int > u ( n ) ;
-vector < vector < pair < int , int > > > g ( n ) ;
-for ( # int i = 0 ;
-# i < n ;
-# # i ++ ) {
-for ( int j = 0 ; j < n ; j ++ ) {
-int q ; scanf ( "%d" , & q
-) ; if ( i > 0 ) {
-}
-}
-# # # }
-d [ s ] = 0 ;
-for ( int i = 0 ; i < n ; ++ i ) {
-int v = - 1 ;
-for ( int j = # # 0 ; j < # # # # n ; # ++ j )
-if ( ! u [ j ] # # && ( v == # # # - 1 || d [ j ] < d [ v ] ) )
-v = j ;
-if ( d [ v ] == inf ) break ;
-u [ v ] = true ;
-for ( auto j : g [ v ] ) {
-int to = j . first ;
-int len = j . second ;
-if ( d [ v ] + len < d [ to ] ) {
-d [ to ] = d [ v ] + len ;
-p [ to ] = v ;
-}
-}
+intmain(){
+intn,s,f;
+cin>>n>>s>>f;
+s--;f--;
+vector<int>d(n,inf),p(n);
+vector<int>u(n);
+vector<vector<pair<int,int>>>g(n);
+for(inti=0;i<n;i++){
+for(intj=0;j<n;j++){
+intq;
+scanf("%d",&q);
+if(i>0){

-}
-cout < < ( d [ f ] # == inf ? - 1 : d [ f ] # ) < < endl ; # # #
-return 0 ;
-} <EOF>
+}
+}
+}
+d[s]=0;
+for(inti=0;i<n;++i){
+intv=-1;
+for(intj=0;j<n;++j)
+if(!u[j]&&(v==-1||d[j]<d[v]))
+v=j;
+if(d[v]==inf)break;
+u[v]=true;
+for(autoj:g[v]){
+intto=j.first;
+intlen=j.second;
+if(d[v]+len<d[to]){
+d[to]=d[v]+len;
+p[to]=v;
+}
+}
+
+}
+cout<<(d[f]==inf?-1:d[f])<<endl;
+return0;
+}<EOF>
\ No newline at end of file diff --git a/server/internal/metrics/testProgs/output/test1.html b/server/internal/metrics/testProgs/output/test1.html index 39f17df4288f53fcaa50f47d8c3d44a08702334f..fe1e712c80f752af224160a8972fba732b0f34a1 100644 --- a/server/internal/metrics/testProgs/output/test1.html +++ b/server/internal/metrics/testProgs/output/test1.html @@ -1,50 +1,46 @@ -
#include <iostream> -
- #include <vector> -
- %
- %
- using namespace std ;
- bool check ( vector < int >
-
-
- s , int i ,
- int j ) { for ( int
- k = 0 ; k < s . size ( ) ; k
- ++ ) { if ( s
- [ k ] != i && s [ k ] != j && s [ k
- ] % i == 0 && j % s
- [ k ] == 0 ) { return 0 ; } } return 1 ; } int
- main ( ) { long long n ;
- cin > > n ;
- vector < int > s ;
- for ( int i = 1 ; i <= n ; i ++ ) {
- if ( n % i == 0 ) {
- s . push_back ( i % % ) ;
- }
- }
- vector < pair <
- int , int > > ans ;
- for ( int i = 0 ; i < s . size ( ) %
- % ; i ++ ) {
- for ( int j = i + 1 ; j < s . size ( ) ; j ++ ) {
- if ( % s [ j ] % s [ i ] == 0 && check ( s , s [ i ] , s [ j ] ) )
- { ans . push_back
- ( { s [ i ] % % % % ,
- s [ j ] } ) ;
- } } } cout < < "graph {" < < endl ;
- for ( int i = 0 ;
- % i < s . size (
- ) ; i ++ ) { cout < < s [ i ] < <
- endl ; } for ( int i = 0 ; i <
- ans . size ( ) ; i
- ++
- )
-
- {
- cout < < % ans [ i ] . first < < "--" < < ans [ i ] . second < < endl ; } cout <
- < "}" ;
- } <EOF>
+
#include <iostream> +
+ #include <vector> +
+
+ using namespace std ;
+
+ bool check ( vector < int > s , int i , int j ) {
+ for ( int k = 0 ; k < s . size ( ) ; k ++ ) {
+ if ( s [ k ] != i && s [ k ] != j && s [ k ] i == 0 && j s [ k ] == 0 ) {
+ return 0 ;
+ }
+ }
+ return 1 ;
+ }
+
+ int main ( ) {
+ long long n ;
+ cin > > n ;
+ vector < int > s ;
+ for ( int i = 1 ; i <= n ; i ++ ) {
+ if ( n i == 0 ) {
+ s . push_back ( i ) ;
+ }
+ }
+ vector < pair < int , int > > ans ;
+ for ( int i = 0 ; i < s . size ( ) ; i ++ ) {
+ for ( int j = i + 1 ; j < s . size ( ) ; j ++ ) {
+ if ( s [ j ] s [ i ] == 0 && check ( s , s [ i ] , s [ j ] ) ) {
+ ans . push_back ( { s [ i ] , s [ j ] } ) ;
+ }
+ }
+ }
+ cout < < "graph {" < < endl ;
+ for ( int i = 0 ; i < s . size ( ) ; i ++ ) {
+ cout < < s [ i ] < < endl ;
+ }
+
+ for ( int i = 0 ; i < ans . size ( ) ; i ++ ) {
+ cout < < ans [ i ] . first < < "--" < < ans [ i ] . second < < endl ;
+ }
+ cout < < "}" ;
+ } <EOF>
\ No newline at end of file diff --git a/server/internal/metrics/testProgs/output/test2.html b/server/internal/metrics/testProgs/output/test2.html index e1e272c87d5930a03a0e57ff68cacaa0db4284a9..796c668c1759d05961d08d3ccf0d3b44cfaa2dcd 100644 --- a/server/internal/metrics/testProgs/output/test2.html +++ b/server/internal/metrics/testProgs/output/test2.html @@ -1,52 +1,52 @@
#include <iostream> -
+
#include <vector> -
+
#include<algorithm> -
+
#include<cmath> -
- using namespace std ;
- # const int inf = 1e9 ;
+
+ usingnamespacestd;
+ constintinf=1e9;


- int main ( ) {
- int n , s , f ;
- cin > > n > > s # > > f ; #
- s -- ; f -- ;
- vector < int > d ( n , inf ) , p ( n ) ;
- vector < int > u ( n ) ;
- vector < vector < pair < int , int > > > g ( n ) ;
- for ( # int i = 0 ;
- # i < n ;
- # # i ++ ) {
- for ( int j = 0 ; j < n ; j ++ ) {
- int q ; scanf ( "%d" , & q
- ) ; if ( i > 0 ) {
- }
- }
- # # # }
- d [ s ] = 0 ;
- for ( int i = 0 ; i < n ; ++ i ) {
- int v = - 1 ;
- for ( int j = # # 0 ; j < # # # # n ; # ++ j )
- if ( ! u [ j ] # # && ( v == # # # - 1 || d [ j ] < d [ v ] ) )
- v = j ;
- if ( d [ v ] == inf ) break ;
- u [ v ] = true ;
- for ( auto j : g [ v ] ) {
- int to = j . first ;
- int len = j . second ;
- if ( d [ v ] + len < d [ to ] ) {
- d [ to ] = d [ v ] + len ;
- p [ to ] = v ;
- }
- }
+ intmain(){
+ intn,s,f;
+ cin>>n>>s>>f;
+ s--;f--;
+ vector<int>d(n,inf),p(n);
+ vector<int>u(n);
+ vector<vector<pair<int,int>>>g(n);
+ for(inti=0;i<n;i++){
+ for(intj=0;j<n;j++){
+ intq;
+ scanf("%d",&q);
+ if(i>0){

- }
- cout < < ( d [ f ] # == inf ? - 1 : d [ f ] # ) < < endl ; # # #
- return 0 ;
- } <EOF>
+ }
+ }
+ }
+ d[s]=0;
+ for(inti=0;i<n;++i){
+ intv=-1;
+ for(intj=0;j<n;++j)
+ if(!u[j]&&(v==-1||d[j]<d[v]))
+ v=j;
+ if(d[v]==inf)break;
+ u[v]=true;
+ for(autoj:g[v]){
+ intto=j.first;
+ intlen=j.second;
+ if(d[v]+len<d[to]){
+ d[to]=d[v]+len;
+ p[to]=v;
+ }
+ }
+
+ }
+ cout<<(d[f]==inf?-1:d[f])<<endl;
+ return0;
+ }<EOF> \ No newline at end of file