# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
917935 |
2024-01-29T06:10:21 Z |
tnun |
Mutating DNA (IOI21_dna) |
C++17 |
|
30 ms |
6332 KB |
#include <bits/stdc++.h>;
using namespace std;
#define ll long long
#define pb push_back
const int maxn=100006;
int CA[maxn]={0};
int AC[maxn]={0};
int TA[maxn]={0};
int AT[maxn]={0};
int TC[maxn]={0};
int CT[maxn]={0};
void init(string a,string b){
string a1="P"+a;
string b1="P"+b;
for(int i=1;i<=a.length();i++){
CA[i]=CA[i-1];
TA[i]=TA[i-1];
CT[i]=CT[i-1];
TC[i]=TC[i-1];
AT[i]=AT[i-1];
AC[i]=AC[i-1];
if(a1[i]=='A' && b1[i]=='C'){
AC[i]++;
}
if(a1[i]=='T' && b1[i]=='C'){
TC[i]++;
}
if(a1[i]=='A' && b1[i]=='T'){
AT[i]++;
}
if(a1[i]=='T' && b1[i]=='A'){
TA[i]++;
}
if(a1[i]=='C' && b1[i]=='T'){
CT[i]++;
}
if(a1[i]=='C' && b1[i]=='A'){
CA[i]++;
}
}
}
int get_distance(int x,int y){
x++;
y++;
int sum=0;
int ca1=CA[y]-CA[x-1];
int ac1=AC[y]-AC[x-1];
int ta1=TA[y]-TA[x-1];
int at1=AT[y]-AT[x-1];
int ct1=CT[y]-CT[x-1];
int tc1=TC[y]-TC[x-1];
int temp=min(ca1,ac1);
ca1-=temp; ac1-=temp;
sum+=temp;
temp=min(ta1,at1);
ta1-=temp; at1-=temp;
sum+=temp;
temp=min(tc1,ct1);
tc1-=temp; ct1-=temp;
sum+=temp;
temp=min(tc1,min(ca1,at1));
sum+=temp*2;
tc1-=temp;
ca1-=temp;
at1-=temp;
temp=min(ta1,min(ac1,ct1));
sum+=temp*2;
ta1-=temp;
ac1-=temp;
ct1-=temp;
if(ta1!=0 || at1!=0 || tc1!=0 || ct1!=0 || ac1!=0 || ca1!=0){
return -1;
}else{
return sum;
}
}
Compilation message
dna.cpp:1:25: warning: extra tokens at end of #include directive
1 | #include <bits/stdc++.h>;
| ^
dna.cpp: In function 'void init(std::string, std::string)':
dna.cpp:15:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
15 | for(int i=1;i<=a.length();i++){
| ~^~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
24 ms |
4700 KB |
Output is correct |
2 |
Correct |
24 ms |
5980 KB |
Output is correct |
3 |
Correct |
24 ms |
5560 KB |
Output is correct |
4 |
Correct |
29 ms |
5948 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
1 ms |
440 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
3 ms |
3780 KB |
Output is correct |
5 |
Correct |
3 ms |
3656 KB |
Output is correct |
6 |
Correct |
3 ms |
3676 KB |
Output is correct |
7 |
Correct |
3 ms |
3420 KB |
Output is correct |
8 |
Correct |
3 ms |
3676 KB |
Output is correct |
9 |
Correct |
3 ms |
3676 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
3 ms |
3780 KB |
Output is correct |
5 |
Correct |
3 ms |
3656 KB |
Output is correct |
6 |
Correct |
3 ms |
3676 KB |
Output is correct |
7 |
Correct |
3 ms |
3420 KB |
Output is correct |
8 |
Correct |
3 ms |
3676 KB |
Output is correct |
9 |
Correct |
3 ms |
3676 KB |
Output is correct |
10 |
Correct |
25 ms |
5972 KB |
Output is correct |
11 |
Correct |
25 ms |
5976 KB |
Output is correct |
12 |
Correct |
30 ms |
5992 KB |
Output is correct |
13 |
Correct |
27 ms |
6236 KB |
Output is correct |
14 |
Correct |
29 ms |
6228 KB |
Output is correct |
15 |
Correct |
25 ms |
6216 KB |
Output is correct |
16 |
Correct |
25 ms |
5996 KB |
Output is correct |
17 |
Correct |
25 ms |
5928 KB |
Output is correct |
18 |
Correct |
25 ms |
6228 KB |
Output is correct |
19 |
Correct |
24 ms |
6004 KB |
Output is correct |
20 |
Correct |
29 ms |
6188 KB |
Output is correct |
21 |
Correct |
24 ms |
6228 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
3 ms |
3780 KB |
Output is correct |
5 |
Correct |
3 ms |
3656 KB |
Output is correct |
6 |
Correct |
3 ms |
3676 KB |
Output is correct |
7 |
Correct |
3 ms |
3420 KB |
Output is correct |
8 |
Correct |
3 ms |
3676 KB |
Output is correct |
9 |
Correct |
3 ms |
3676 KB |
Output is correct |
10 |
Correct |
3 ms |
3416 KB |
Output is correct |
11 |
Correct |
4 ms |
3676 KB |
Output is correct |
12 |
Correct |
4 ms |
3420 KB |
Output is correct |
13 |
Correct |
3 ms |
3676 KB |
Output is correct |
14 |
Correct |
3 ms |
3604 KB |
Output is correct |
15 |
Correct |
3 ms |
3676 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
24 ms |
4700 KB |
Output is correct |
2 |
Correct |
24 ms |
5980 KB |
Output is correct |
3 |
Correct |
24 ms |
5560 KB |
Output is correct |
4 |
Correct |
29 ms |
5948 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
1 ms |
440 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
344 KB |
Output is correct |
9 |
Correct |
1 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
3 ms |
3780 KB |
Output is correct |
12 |
Correct |
3 ms |
3656 KB |
Output is correct |
13 |
Correct |
3 ms |
3676 KB |
Output is correct |
14 |
Correct |
3 ms |
3420 KB |
Output is correct |
15 |
Correct |
3 ms |
3676 KB |
Output is correct |
16 |
Correct |
3 ms |
3676 KB |
Output is correct |
17 |
Correct |
25 ms |
5972 KB |
Output is correct |
18 |
Correct |
25 ms |
5976 KB |
Output is correct |
19 |
Correct |
30 ms |
5992 KB |
Output is correct |
20 |
Correct |
27 ms |
6236 KB |
Output is correct |
21 |
Correct |
29 ms |
6228 KB |
Output is correct |
22 |
Correct |
25 ms |
6216 KB |
Output is correct |
23 |
Correct |
25 ms |
5996 KB |
Output is correct |
24 |
Correct |
25 ms |
5928 KB |
Output is correct |
25 |
Correct |
25 ms |
6228 KB |
Output is correct |
26 |
Correct |
24 ms |
6004 KB |
Output is correct |
27 |
Correct |
29 ms |
6188 KB |
Output is correct |
28 |
Correct |
24 ms |
6228 KB |
Output is correct |
29 |
Correct |
3 ms |
3416 KB |
Output is correct |
30 |
Correct |
4 ms |
3676 KB |
Output is correct |
31 |
Correct |
4 ms |
3420 KB |
Output is correct |
32 |
Correct |
3 ms |
3676 KB |
Output is correct |
33 |
Correct |
3 ms |
3604 KB |
Output is correct |
34 |
Correct |
3 ms |
3676 KB |
Output is correct |
35 |
Correct |
0 ms |
348 KB |
Output is correct |
36 |
Correct |
28 ms |
5556 KB |
Output is correct |
37 |
Correct |
25 ms |
5844 KB |
Output is correct |
38 |
Correct |
26 ms |
5992 KB |
Output is correct |
39 |
Correct |
26 ms |
6228 KB |
Output is correct |
40 |
Correct |
27 ms |
6332 KB |
Output is correct |
41 |
Correct |
2 ms |
3676 KB |
Output is correct |
42 |
Correct |
25 ms |
5932 KB |
Output is correct |
43 |
Correct |
25 ms |
6228 KB |
Output is correct |
44 |
Correct |
25 ms |
6228 KB |
Output is correct |
45 |
Correct |
24 ms |
6004 KB |
Output is correct |
46 |
Correct |
25 ms |
6216 KB |
Output is correct |
47 |
Correct |
24 ms |
6072 KB |
Output is correct |