Submission #1015918

#TimeUsernameProblemLanguageResultExecution timeMemory
1015918deeraMutating DNA (IOI21_dna)C++17
43 / 100
1531 ms2476 KiB
#include <bits/stdc++.h> using namespace std; #include "dna.h" string A, B; void init(string a, string b) { A = a; B = b; } int get_distance(int x, int y) { string a = A.substr(x, (y-x+1)); string b = B.substr(x, (y-x+1)); if (a == b) { return 0; } string fa = "", fb = ""; int a_a = 0, a_c = 0, a_t = 0; int b_a = 0, b_c = 0, b_t = 0; for(int i=0;i<a.size();i++) { if (a[i] != b[i]) { fa += a.substr(i, 1); fb += b.substr(i, 1); if (a[i] == 'A') { a_a++; } else if (a[i] == 'C') { a_c++; } else { a_t++; } if (b[i] == 'A') { b_a++; } else if (b[i] == 'C') { b_c++; } else { b_t++; } } } if (a_a != b_a || a_c != b_c || a_t != b_t) { return -1; } a = fa; b = fb; int n = a.size(); if (a == b) { return 0; } if (n == 1) { return -1; } if (n == 2 || n == 3) { return n - 1; } return (n / 2) + (n % 2); }

Compilation message (stderr)

dna.cpp: In function 'int get_distance(int, int)':
dna.cpp:26:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |     for(int i=0;i<a.size();i++) {
      |                 ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...