제출 #697760

#제출 시각아이디문제언어결과실행 시간메모리
697760hiikunZDNA 돌연변이 (IOI21_dna)C++17
56 / 100
56 ms18020 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long int; vector<vector<ll>> R(9,vector<ll>(200000,0)); void init(string a, string b){ ll N = (ll)a.size(); for(ll i = 0;i < N;i++){ ll p,q; if(a[i] == 'A') p = 0; if(a[i] == 'T') p = 1; if(a[i] == 'C') p = 2; if(b[i] == 'A') q = 0; if(b[i] == 'T') q = 1; if(b[i] == 'C') q = 2; for(ll j = 0;j < 9;j++) R[j][i + 1] = R[j][i]; R[p * 3 + q][i + 1]++; } } int get_distance(int x, int y){ y++; ll ans = 0; vector<int> A(9); for(ll j = 0;j < 9;j++) A[j] = R[j][y] - R[j][x]; for(ll i = 0;i < 3;i++){ A[i * 3 + i] = 0; for(ll j = i + 1;j < 3;j++){ ll k = min(A[i * 3 + j],A[j * 3 + i]); A[i * 3 + j] -= k; A[j * 3 + i] -= k; ans += k; } } vector<ll> C(3); for(ll i = 0;i < 3;i++){ for(ll j = 0;j < 3;j++){ C[i] += A[i * 3 + j]; C[j] -= A[i * 3 + j]; } } if(C[0] != 0 || C[1] != 0 || C[2] != 0) return -1; ll w = 0; for(int i = 0;i < 9;i++) w += A[i]; if(w != 0) w--; return ans + w; }

컴파일 시 표준 에러 (stderr) 메시지

dna.cpp: In function 'void init(std::string, std::string)':
dna.cpp:16:16: warning: 'q' may be used uninitialized in this function [-Wmaybe-uninitialized]
   16 |        R[p * 3 + q][i + 1]++;
      |          ~~~~~~^~~
dna.cpp:16:12: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
   16 |        R[p * 3 + q][i + 1]++;
      |          ~~^~~
#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...