///~~~LOTA~~~///
#include "dna.h"
#include <bits/stdc++.h>
using namespace std;
#define nl '\n'
#define ff first
#define ss second
#define ll long long
#define append push_back
#define pii pair<int,int>
#define all(x) (x).begin(),(x).end()
#define N 100001
int AC[N];
int AT[N];
int CA[N];
int CT[N];
int TA[N];
int TC[N];
void init(string a,string b){
for(int i=0;i<a.size();i++){
AC[i]=AC[i-1]+(a[i]=='A' && b[i]=='C');
AT[i]=AT[i-1]+(a[i]=='A' && b[i]=='T');
CA[i]=CA[i-1]+(a[i]=='C' && b[i]=='A');
CT[i]=CT[i-1]+(a[i]=='C' && b[i]=='T');
TA[i]=TA[i-1]+(a[i]=='T' && b[i]=='A');
TC[i]=TC[i-1]+(a[i]=='T' && b[i]=='C');
}
}
int get_distance(int l,int r){
int o,p,q,s;
int ac,at,ca,ct,ta,tc;
l--;
ac=AC[r];
at=AT[r];
ca=CA[r];
ct=CT[r];
ta=TA[r];
tc=TC[r];
if(l>=0){
ac-=AC[l];
at-=AT[l];
ca-=CA[l];
ct-=CT[l];
ta-=TA[l];
tc-=TC[l];
}
p=min(ac,ca);
q=min(at,ta);
s=min(ct,tc);
o=p+q+s;
ac-=p;
ca-=p;
at-=q;
ta-=q;
ct-=s;
tc-=s;
if(ac==ct && ct==ta
&& ca==tc && tc==at)
o+=ac+ca+tc+ct;
else o=-1;
return o;
}
Compilation message
dna.cpp: In function 'void init(std::string, std::string)':
dna.cpp:20:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
20 | for(int i=0;i<a.size();i++){
| ~^~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
24 ms |
4624 KB |
Output is correct |
2 |
Correct |
24 ms |
4632 KB |
Output is correct |
3 |
Correct |
24 ms |
4316 KB |
Output is correct |
4 |
Correct |
25 ms |
5976 KB |
Output is correct |
5 |
Correct |
0 ms |
344 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
3 ms |
3164 KB |
Output is correct |
5 |
Correct |
3 ms |
3164 KB |
Output is correct |
6 |
Correct |
3 ms |
3160 KB |
Output is correct |
7 |
Correct |
3 ms |
3164 KB |
Output is correct |
8 |
Correct |
3 ms |
3164 KB |
Output is correct |
9 |
Correct |
3 ms |
3160 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
3 ms |
3164 KB |
Output is correct |
5 |
Correct |
3 ms |
3164 KB |
Output is correct |
6 |
Correct |
3 ms |
3160 KB |
Output is correct |
7 |
Correct |
3 ms |
3164 KB |
Output is correct |
8 |
Correct |
3 ms |
3164 KB |
Output is correct |
9 |
Correct |
3 ms |
3160 KB |
Output is correct |
10 |
Correct |
27 ms |
4636 KB |
Output is correct |
11 |
Correct |
24 ms |
4632 KB |
Output is correct |
12 |
Correct |
26 ms |
4640 KB |
Output is correct |
13 |
Correct |
26 ms |
4892 KB |
Output is correct |
14 |
Correct |
29 ms |
4872 KB |
Output is correct |
15 |
Correct |
25 ms |
4884 KB |
Output is correct |
16 |
Correct |
25 ms |
4644 KB |
Output is correct |
17 |
Correct |
25 ms |
4896 KB |
Output is correct |
18 |
Correct |
25 ms |
4888 KB |
Output is correct |
19 |
Correct |
24 ms |
4864 KB |
Output is correct |
20 |
Correct |
24 ms |
4872 KB |
Output is correct |
21 |
Correct |
29 ms |
4880 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
3 ms |
3164 KB |
Output is correct |
5 |
Correct |
3 ms |
3164 KB |
Output is correct |
6 |
Correct |
3 ms |
3160 KB |
Output is correct |
7 |
Correct |
3 ms |
3164 KB |
Output is correct |
8 |
Correct |
3 ms |
3164 KB |
Output is correct |
9 |
Correct |
3 ms |
3160 KB |
Output is correct |
10 |
Correct |
3 ms |
2904 KB |
Output is correct |
11 |
Correct |
3 ms |
3568 KB |
Output is correct |
12 |
Correct |
3 ms |
3164 KB |
Output is correct |
13 |
Correct |
3 ms |
3524 KB |
Output is correct |
14 |
Correct |
3 ms |
3420 KB |
Output is correct |
15 |
Correct |
3 ms |
3416 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
24 ms |
4624 KB |
Output is correct |
2 |
Correct |
24 ms |
4632 KB |
Output is correct |
3 |
Correct |
24 ms |
4316 KB |
Output is correct |
4 |
Correct |
25 ms |
5976 KB |
Output is correct |
5 |
Correct |
0 ms |
344 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
348 KB |
Output is correct |
9 |
Correct |
0 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
3 ms |
3164 KB |
Output is correct |
12 |
Correct |
3 ms |
3164 KB |
Output is correct |
13 |
Correct |
3 ms |
3160 KB |
Output is correct |
14 |
Correct |
3 ms |
3164 KB |
Output is correct |
15 |
Correct |
3 ms |
3164 KB |
Output is correct |
16 |
Correct |
3 ms |
3160 KB |
Output is correct |
17 |
Correct |
27 ms |
4636 KB |
Output is correct |
18 |
Correct |
24 ms |
4632 KB |
Output is correct |
19 |
Correct |
26 ms |
4640 KB |
Output is correct |
20 |
Correct |
26 ms |
4892 KB |
Output is correct |
21 |
Correct |
29 ms |
4872 KB |
Output is correct |
22 |
Correct |
25 ms |
4884 KB |
Output is correct |
23 |
Correct |
25 ms |
4644 KB |
Output is correct |
24 |
Correct |
25 ms |
4896 KB |
Output is correct |
25 |
Correct |
25 ms |
4888 KB |
Output is correct |
26 |
Correct |
24 ms |
4864 KB |
Output is correct |
27 |
Correct |
24 ms |
4872 KB |
Output is correct |
28 |
Correct |
29 ms |
4880 KB |
Output is correct |
29 |
Correct |
3 ms |
2904 KB |
Output is correct |
30 |
Correct |
3 ms |
3568 KB |
Output is correct |
31 |
Correct |
3 ms |
3164 KB |
Output is correct |
32 |
Correct |
3 ms |
3524 KB |
Output is correct |
33 |
Correct |
3 ms |
3420 KB |
Output is correct |
34 |
Correct |
3 ms |
3416 KB |
Output is correct |
35 |
Correct |
0 ms |
348 KB |
Output is correct |
36 |
Correct |
28 ms |
5676 KB |
Output is correct |
37 |
Correct |
25 ms |
5896 KB |
Output is correct |
38 |
Correct |
27 ms |
6080 KB |
Output is correct |
39 |
Correct |
26 ms |
6164 KB |
Output is correct |
40 |
Correct |
26 ms |
6168 KB |
Output is correct |
41 |
Correct |
3 ms |
3416 KB |
Output is correct |
42 |
Correct |
26 ms |
6116 KB |
Output is correct |
43 |
Correct |
25 ms |
6160 KB |
Output is correct |
44 |
Correct |
25 ms |
6260 KB |
Output is correct |
45 |
Correct |
25 ms |
5912 KB |
Output is correct |
46 |
Correct |
25 ms |
6168 KB |
Output is correct |
47 |
Correct |
24 ms |
6364 KB |
Output is correct |