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...