Submission #1284009

#TimeUsernameProblemLanguageResultExecution timeMemory
1284009RaresMutating DNA (IOI21_dna)C++20
100 / 100
24 ms6144 KiB
#include <bits/stdc++.h> using namespace std; /**ifstream fin ("date.in"); ofstream fout ("date.out"); #define cin fin #define cout fout**/ const int MAXN=1e5+10; const int INF=1e9; int f (char c){ if (c=='A') return 0; if (c=='C') return 1; if (c=='T') return 2; } int a[3][3][MAXN],n; void init(string s1, string s2){ n=s1.size (); for (int i=1;i<=n;++i){ int x=f (s1[i-1]),y=f (s2[i-1]); for (int j=0;j<3;++j){ for (int k=0;k<3;++k){ a[j][k][i]=a[j][k][i-1]; } } a[x][y][i]++; } } int crt[3][3]; int get_distance(int l, int r){ l++,r++; for (int i=0;i<3;++i){ for (int j=0;j<3;++j){ crt[i][j]=a[i][j][r]-a[i][j][l-1]; } } for (int i=0;i<3;++i){ int x=0,y=0; for (int j=0;j<3; ++j){ if (i==j) continue; x+=crt[i][j]; y+=crt[j][i]; } if (x!=y){ return -1; } } int rez=0; for (int i=0;i<3;++i){ for (int j=0;j<3;++j){ if (i==j) continue; int x=min (crt[i][j],crt[j][i]); rez+=x; crt[i][j]-=x; crt[j][i]-=x; } } int x=0; for (int i=0;i<3;++i){ for (int j=0;j<3;++j){ if (i!=j){ x=max (x,crt[i][j]); } //cout <<crt[i][j]<<' '; } //cout <<'\n'; } rez+=2*x; return rez; }

Compilation message (stderr)

dna.cpp: In function 'int f(char)':
dna.cpp:15:1: warning: control reaches end of non-void function [-Wreturn-type]
   15 | }
      | ^
#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...