제출 #33863

#제출 시각아이디문제언어결과실행 시간메모리
33863wan2000Martian DNA (IOI16_dna)C++14
100 / 100
13 ms2020 KiB
#include "dna.h" #include <bits/stdc++.h> using namespace std; string add(string s, int len, char ch){ while(s.size()<len) s += ch; return s; } string analyse(int n, int t){ string res = ""; int l = 1, r = n, mid; int cur = 0; while(l<=r){ mid = (l+r)>>1; if(make_test(add("",mid,'1'))){ cur = mid; l = mid+1; } else r = mid-1; } res = add("",cur,'1'); string tmp = res; int cnt = 0; while(tmp.size()<n){ if(make_test(tmp+"0")){ tmp += "0"; cnt = 0; } else{ tmp += "1"; cnt++; } if(cnt>cur) break; } l = tmp.size()-cnt+1; r = tmp.size(); int suf = tmp.size()-cnt; while(l<=r){ mid = (l+r)>>1; string s = ""; for(int i = 0; i < mid; i++){ s += tmp[i]; } if(make_test(s)){ suf = mid; l = mid+1; } else r = mid-1; } res = ""; for(int i = 0; i < suf; i++) res += tmp[i]; while(res.size()<n){ if(make_test("0"+res)) res = "0"+res; else res = "1"+res; } return res; }

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

dna.cpp: In function 'std::__cxx11::string add(std::__cxx11::string, int, char)':
dna.cpp:7:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(s.size()<len) s += ch;
                   ^
dna.cpp: In function 'std::__cxx11::string analyse(int, int)':
dna.cpp:26:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(tmp.size()<n){
                     ^
dna.cpp:53:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(res.size()<n){
                     ^
grader.cpp: In function 'bool make_test(std::__cxx11::string)':
grader.cpp:14:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < p.size(); i++) {
                    ^
grader.cpp:23:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 1; i <= ss.size(); i++) {
                    ^
grader.cpp:28:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (pr[i] == p.size()) {
             ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...