Submission #831616

#TimeUsernameProblemLanguageResultExecution timeMemory
831616KemalKMartian DNA (IOI16_dna)C++17
11 / 100
20 ms476 KiB
#include "dna.h"
#include <bits/stdc++.h>
#include <cstdlib>
using namespace std;

std::string analyse(int n, int t) {
    string ans = "";
    if (n <= 5){
        bool ok = false;
        for (int mask = 0; mask < (1<<n) - 1; mask++){
            string cur = "";
            for (int j = 0; j < n; j++){
                if (mask>>j&1){
                    cur += "1";
                }
                else{
                    cur += "0";
                }
            }
            ok = make_test(cur);
            if (ok){
                return cur;
            }
        }
        if (!ok){
            for(int i = 0; i < n; i++){
                ans += "1";
            }
            return ans;
        }
    }
    bool left = true;
    bool right = true;
    while(ans.size() != n){
        if (ans.size() == 0){
            string cur = ans + "0";
            string cur2 = ans + "1";
            bool ok = make_test(cur);
            bool ok2 = make_test(cur2);
            if (!ok){
                for (int i = 0; i < n; i++){
                    ans += "1";
                }
                return ans;
            }
            else if (!ok2){
                for (int i = 0; i < n; i++){
                    ans += "0";
                }
                return ans;
            }
            ans += "0";
        }
        else{
            cout << "second " << "\n";
            if (left){
                string cur = ans + "1";
                string cur2 = ans + "0";
                bool ok = make_test(cur);
                bool ok2 = make_test(cur2);
                if (!ok and !ok2){
                    left = false;
                }
                else if (ok){
                    ans += "1";
                }
                else{
                    ans += "0";
                }
            }
            else{
                string cur = "0" + ans;
                string cur2 = "1" + ans;
                bool ok = make_test(cur);
                bool ok2 = make_test(cur2);
                if (ok){
                    ans = "0" + ans; 
                }
                else{
                    ans = "1" + ans;
                }
            }
        }
    }
    return ans;
}                       

Compilation message (stderr)

dna.cpp: In function 'std::string analyse(int, int)':
dna.cpp:34:22: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   34 |     while(ans.size() != n){
      |           ~~~~~~~~~~~^~~~
dna.cpp:75:22: warning: unused variable 'ok2' [-Wunused-variable]
   75 |                 bool ok2 = make_test(cur2);
      |                      ^~~
dna.cpp:33:10: warning: unused variable 'right' [-Wunused-variable]
   33 |     bool right = true;
      |          ^~~~~
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...