Submission #543733

#TimeUsernameProblemLanguageResultExecution timeMemory
543733Sho10Martian DNA (IOI16_dna)C++17
100 / 100
13 ms400 KiB
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho #include "dna.h" using ll=long long; using ld=long double; int const INF=1000000005; ll const LINF=1000000000000000005; ll const mod=1000000007; ld const PI=3.14159265359; ll const MAX_N=3e5+5; #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #define f first #define s second #define pb push_back #define mp make_pair #define endl '\n' #define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; string analyse(int n,int t){ ll l=1,r=n,res=0; while(l<=r){ ll mid=(l+r)/2; string s=""; for(ll i=0;i<mid;i++) { s+='1'; } if(make_test(s)){ res=mid; l=mid+1; }else { r=mid-1; } } if(res==0){ string ans=""; for(ll i=0;i<n;i++) { ans+='0'; } return ans; } string ans=""; for(ll i=0;i<res;i++) { ans+='1'; } ll cnt=0; while(cnt<=res){ ans+='0'; if(make_test(ans)){ cnt=0; }else { cnt++; ans[ans.size()-1]='1'; } } l=1,r=ans.size(),res=0; while(l<=r){ ll mid=(l+r)/2; string s=ans.substr(0,mid); if(make_test(s)){ res=mid; l=mid+1; }else { r=mid-1; } } ans=ans.substr(0,res); while(ans.size()<n){ ans='0'+ans; if(make_test(ans)==0){ ans[0]='1'; } } return ans; } /* int32_t main(){ CODE_START; #ifdef LOCAL ifstream cin("input.txt"); #endif */

Compilation message (stderr)

dna.cpp: In function 'std::string analyse(int, int)':
dna.cpp:70:17: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   70 | while(ans.size()<n){
      |       ~~~~~~~~~~^~
grader.cpp: In function 'bool make_test(std::string)':
grader.cpp:14:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |  for (int i = 0; i < p.size(); i++) {
      |                  ~~^~~~~~~~~~
grader.cpp:23:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |  for (int i = 1; i <= ss.size(); i++) {
      |                  ~~^~~~~~~~~~~~
grader.cpp:28:13: warning: comparison of integer expressions of different signedness: '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |   if (pr[i] == p.size()) {
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...