Submission #783133

#TimeUsernameProblemLanguageResultExecution timeMemory
783133Sir_Ahmed_ImranDNA 돌연변이 (IOI21_dna)C++17
Compilation error
0 ms0 KiB
#include "dna.h"
#define MAXN 100001
int at[MAXN];
int ac[MAXN];
int ta[MAXN];
int tc[MAXN];
int ca[MAXN];
int ct[MAXN];
void init(std::string a, std::string b) {
	at[0]=0;
	ac[0]=0;
	ta[0]=0;
	tc[0]=0;
	ca[0]=0;
	ct[0]=0;
	for(int i=0;i<a.size();i++){
		at[i+1]=at[i];
		ac[i+1]=ac[i];
		ta[i+1]=ta[i];
		tc[i+1]=tc[i];
		ca[i+1]=ca[i];
		ct[i+1]=ct[i];
		at[i+1]+=(a[i]=='A' && b[i]=='T');
		ac[i+1]+=(a[i]=='A' && b[i]=='C');
		ta[i+1]+=(a[i]=='T' && b[i]=='A');
		tc[i+1]+=(a[i]=='T' && b[i]=='C');
		ca[i+1]+=(a[i]=='C' && b[i]=='A');
		ct[i+1]+=(a[i]=='C' && b[i]=='T');
	}
}
int get_distance(int x, int y) {
	int a,b,n,m,o,p,q,r;
	o=0;
	a=at[x+1]-at[y];
	n=ac[x+1]-ac[y];
	b=ta[x+1]-ta[y];
	p=tc[x+1]-tc[y];
	m=ca[x+1]-ca[y];
	q=ct[x+1]-ct[y];
	r=min(a,b);
	a-=r;
	b-=r;
	o+=r;
	r=min(n,m);
	n-=r;
	m-=r;
	o+=r;
	r=min(p,q);
	p-=r;
	q-=r;
	o+=r;
	if(max(a,b)==max(n,m) && max(n,m)==max(p,q)) 
		return o+max(a,b);
	return -1;
}

Compilation message (stderr)

dna.cpp: In function 'void init(std::string, std::string)':
dna.cpp:16:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |  for(int i=0;i<a.size();i++){
      |              ~^~~~~~~~~
dna.cpp: In function 'int get_distance(int, int)':
dna.cpp:40:4: error: 'min' was not declared in this scope; did you mean 'std::min'?
   40 |  r=min(a,b);
      |    ^~~
      |    std::min
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/string:40,
                 from dna.h:1,
                 from dna.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: 'std::min' declared here
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
dna.cpp:52:5: error: 'max' was not declared in this scope; did you mean 'std::max'?
   52 |  if(max(a,b)==max(n,m) && max(n,m)==max(p,q))
      |     ^~~
      |     std::max
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/string:40,
                 from dna.h:1,
                 from dna.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: 'std::max' declared here
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~