Submission #978221

#TimeUsernameProblemLanguageResultExecution timeMemory
978221AmaarsaaMutating DNA (IOI21_dna)C++17
0 / 100
25 ms4120 KiB
#include "dna.h" #include<bits/stdc++.h> using namespace std; int a[100004][2][2]; void init(string A, string B) { int n = A.size(); for (int i = 0; i < n; i ++) { if ( A[i] == 'T') A[i] = 'B'; if ( B[i] == 'T') B[i] = 'B'; A[i] += 32; B[i] += 32; for (int j = 0; j <= 2; j ++) { for (int r = 0; r <= 2; r ++) { if ( i == 0) a[i][j][r] = 0; else a[i][j][r] = a[i - 1][j][r]; } } int x = A[i] - 'a'; int y = B[i] - 'a'; a[i][x][y] ++; } } int cnt(int l, int r, int x, int y){ int s= a[r][x][y]; if ( l == 0) return s; s -= (a[l - 1][x][y]); return s; } int get_distance(int x, int y) { int ans = 0; int ab = cnt(x, y, 0, 1), ba = cnt(x, y, 1, 0), ac = cnt(x, y, 0, 2), ca = cnt(x, y, 2, 0), bc = cnt(x, y, 1, 2), cb = cnt(x, y, 2, 1); x = min(ab, ba); ans += x; ab -= x; ba -= x; x = min(ac, ca); ans += x; ac -= x; ca -= x; x = min(bc, cb); ans += x; bc -= x; cb -= x; ab += ba; ac += ca; bc += cb; int s = ab + bc + ac; if ( ab * 2 == s) return ab + ans; if ( ac * 2 == s) return ac + ans; if ( bc * 2 == s) return bc + ans; return -1; }

Compilation message (stderr)

dna.cpp: In function 'int get_distance(int, int)':
dna.cpp:25:15: warning: array subscript 2 is above array bounds of 'int [2][2]' [-Warray-bounds]
   25 |  int s= a[r][x][y];
      |         ~~~~~~^
dna.cpp:27:18: warning: array subscript 2 is above array bounds of 'int [2][2]' [-Warray-bounds]
   27 |  s -= (a[l - 1][x][y]);
      |        ~~~~~~~~~~^
dna.cpp:25:15: warning: array subscript 2 is above array bounds of 'int [2][2]' [-Warray-bounds]
   25 |  int s= a[r][x][y];
      |         ~~~~~~^
dna.cpp:27:18: warning: array subscript 2 is above array bounds of 'int [2][2]' [-Warray-bounds]
   27 |  s -= (a[l - 1][x][y]);
      |        ~~~~~~~~~~^
#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...