Submission #794841

# Submission time Handle Problem Language Result Execution time Memory
794841 2023-07-27T01:01:37 Z bane Martian DNA (IOI16_dna) C++17
0 / 100
1000 ms 516 KB
        #include <bits/stdc++.h>
        #include "dna.h"
        using namespace std;
         
         
        string analyse(int n, int t) {
         
            int oi = 0, io = 0, ii = 0, oo = 0;
            if (n == 1){
                if (make_test("1"))return "1";
                else return "0";
            }
            oi = make_test("01");
            io = make_test("10");
            ii = make_test("11");
            oo = make_test("00");
            string ans = "";
     
            map<string,int>flag;
            if (oi)flag["01"] = 1;
            if (io)flag["10"] = 1;
            if (ii)flag["11"] = 1;
            if (oo)flag["00"] = 1;
     
            if (oi){
                ans += "01";
            }else if(ii){
                ans += "11";
            }
            else if(oo){
                ans +="00";
            }
            else{
                 ans += "10";
            }
            t-=4;
            while(t > 0 && (int)ans.size() < n){
                string ask1,ask2,ask3,ask4;
                //cout << ans << endl;
                if (ans.size() + 2 <= n){
                    if(oi)ask1 = ans + "01";
                    else ask1 = "4";
         
                    if(io)ask2 = ans +  "10";
                    else ask2 = "4";
                    
                    if(ii)ask3 = ans +  "11";
                    else ask3 = "4";
                    
                    if(oo)ask4 = ans +  "00";
                    else ask4 = "4";
                    
                    if (ask1 != "4" && flag[ask1.substr((int)ask1.size()-3,2)]){
                        --t;
                        if (make_test(ask1)){
                            ans = ask1;
                            continue;
                        }
                    }
         
                    if (ask2 != "4" && flag[ask2.substr((int)ask2.size()-3,2)]){
                        --t;
                        if (make_test(ask2)){
                            ans = ask2;
                            continue;
                        }
                    }
         
                    if (ask3 != "4" && flag[ask3.substr((int)ask3.size()-3,2)]){
                        --t;
                        if (make_test(ask3)){
                            ans = ask3;
                            continue;
                        }
                    }
         
                    if (ask4 != "4" && flag[ask4.substr((int)ask4.size()-3,2)]){
                        --t;
                        if (make_test(ask4)){
                            ans = ask4;
                            continue;
                        }
                    }
                }
                //one element to the right
                cout << (int)ans.size() << endl;
                --t;
                ans += "1";
                if (make_test(ans)){
                    break;
                }
                ans.back() = '0';
                if (make_test(ans )){
                    
                }else{
                    ans = ans.substr(0, ans.size() - 1);
                }
                --t;
                break;
            }
           
            while((int)ans.size() < n){
                string a1,a2,a3,a4;
                a1 = "10" + ans;
                a2 = "01" + ans;
                a3 = "11" + ans;
                a4 = "00" + ans;
                if (ans.size() + 1 == n){
                    a1 = "1" + ans;
                    if (make_test(a1))return a1;
                    else a1 = "0" + ans;
                    return a1;
                }else{
                    if (io){
                        if (make_test(a1)){
                            ans = a1;
                            continue; 
                       }
                    }
                    if (oi){
                        if (make_test(a2)){
                            ans = a2;
                            continue;
                        }
                    }
                    if (ii){
                        if (make_test(a3)){
                            ans = a3;
                            continue;
                        }
                    }

                    if (oo){
                        if (make_test(a4)){
                            ans = a4;
                            continue;
                        }
                    }
                }
            }
            return ans;
        }                       

Compilation message

dna.cpp: In function 'std::string analyse(int, int)':
dna.cpp:40:36: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   40 |                 if (ans.size() + 2 <= n){
      |                     ~~~~~~~~~~~~~~~^~~~
dna.cpp:108:36: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  108 |                 if (ans.size() + 1 == 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 time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Incorrect 0 ms 212 KB Secret is incorrect!
8 Incorrect 0 ms 212 KB Secret is incorrect!
9 Incorrect 0 ms 212 KB Secret is incorrect!
10 Incorrect 1 ms 212 KB Secret is incorrect!
11 Incorrect 0 ms 212 KB Secret is incorrect!
12 Correct 0 ms 212 KB Output is correct
13 Incorrect 1 ms 212 KB Secret is incorrect!
14 Incorrect 0 ms 212 KB Secret is incorrect!
15 Incorrect 0 ms 212 KB Secret is incorrect!
16 Incorrect 0 ms 212 KB Secret is incorrect!
17 Incorrect 0 ms 212 KB Secret is incorrect!
18 Incorrect 0 ms 212 KB Secret is incorrect!
19 Incorrect 0 ms 212 KB Secret is incorrect!
20 Incorrect 0 ms 212 KB Secret is incorrect!
21 Incorrect 0 ms 212 KB Secret is incorrect!
22 Incorrect 0 ms 212 KB Secret is incorrect!
23 Incorrect 0 ms 212 KB Secret is incorrect!
24 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Incorrect 0 ms 212 KB Secret is incorrect!
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Incorrect 0 ms 212 KB Secret is incorrect!
11 Incorrect 0 ms 212 KB Secret is incorrect!
12 Incorrect 0 ms 212 KB Secret is incorrect!
13 Incorrect 0 ms 212 KB Secret is incorrect!
14 Incorrect 0 ms 212 KB Secret is incorrect!
15 Incorrect 0 ms 212 KB Secret is incorrect!
16 Incorrect 0 ms 212 KB Secret is incorrect!
17 Incorrect 0 ms 212 KB Secret is incorrect!
18 Incorrect 0 ms 212 KB Secret is incorrect!
19 Incorrect 0 ms 212 KB Secret is incorrect!
20 Incorrect 0 ms 212 KB Secret is incorrect!
21 Incorrect 0 ms 212 KB Secret is incorrect!
22 Correct 0 ms 212 KB Output is correct
23 Incorrect 0 ms 224 KB Secret is incorrect!
24 Correct 1 ms 212 KB Output is correct
25 Correct 0 ms 212 KB Output is correct
26 Correct 0 ms 212 KB Output is correct
27 Incorrect 1 ms 212 KB Secret is incorrect!
28 Incorrect 0 ms 212 KB Secret is incorrect!
29 Incorrect 0 ms 212 KB Secret is incorrect!
30 Incorrect 0 ms 212 KB Secret is incorrect!
31 Incorrect 0 ms 212 KB Secret is incorrect!
32 Incorrect 1 ms 212 KB Secret is incorrect!
33 Incorrect 1 ms 212 KB Secret is incorrect!
34 Incorrect 0 ms 212 KB Secret is incorrect!
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Incorrect 0 ms 212 KB Secret is incorrect!
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Incorrect 0 ms 212 KB Secret is incorrect!
11 Incorrect 0 ms 212 KB Secret is incorrect!
12 Incorrect 0 ms 212 KB Secret is incorrect!
13 Incorrect 0 ms 212 KB Secret is incorrect!
14 Incorrect 1 ms 212 KB Secret is incorrect!
15 Correct 0 ms 212 KB Output is correct
16 Incorrect 1 ms 212 KB Secret is incorrect!
17 Incorrect 1 ms 320 KB Secret is incorrect!
18 Incorrect 1 ms 212 KB Secret is incorrect!
19 Incorrect 1 ms 212 KB Secret is incorrect!
20 Incorrect 0 ms 212 KB Secret is incorrect!
21 Incorrect 1 ms 212 KB Secret is incorrect!
22 Incorrect 11 ms 468 KB Secret is incorrect!
23 Incorrect 12 ms 468 KB Secret is incorrect!
24 Incorrect 10 ms 468 KB Secret is incorrect!
25 Incorrect 13 ms 516 KB Secret is incorrect!
26 Execution timed out 1097 ms 468 KB Time limit exceeded
27 Correct 2 ms 340 KB Output is correct
28 Incorrect 2 ms 340 KB Secret is incorrect!
29 Correct 3 ms 304 KB Output is correct
30 Correct 3 ms 340 KB Output is correct
31 Correct 3 ms 340 KB Output is correct
32 Incorrect 3 ms 340 KB Secret is incorrect!
33 Incorrect 5 ms 424 KB Secret is incorrect!
34 Incorrect 5 ms 468 KB Secret is incorrect!
35 Incorrect 6 ms 468 KB Secret is incorrect!
36 Incorrect 5 ms 488 KB Secret is incorrect!
37 Incorrect 5 ms 468 KB Secret is incorrect!
38 Incorrect 8 ms 488 KB Secret is incorrect!
39 Incorrect 6 ms 468 KB Secret is incorrect!