제출 #442212

#제출 시각아이디문제언어결과실행 시간메모리
442212mario05092929Martian DNA (IOI16_dna)C++11
100 / 100
14 ms460 KiB
#include "dna.h"
#include <bits/stdc++.h>
#define x first
#define y second
#define pb push_back
#define all(v) v.begin(),v.end()
#pragma gcc optimize("O3")
#pragma gcc optimize("Ofast")
#pragma gcc optimize("unroll-loops")
using namespace std;
const int INF = 1e9;
const int TMX = 1 << 18;
const long long llINF = 2e18;
const long long mod = 1e9+7;
const long long hashmod = 100003;
const int MAXN = 100000;
const int MAXM = 1000000;
typedef long long ll;
typedef long double ld;
typedef pair <int,int> pi;
typedef pair <ll,ll> pl;
typedef vector <int> vec;
typedef vector <pi> vecpi;
typedef long long ll;
string ask;
int tmp;

string analyse(int n, int t) {
    int row = 0,i;
    for(i = 0;i < n;i++) {
        int val = rand()%2;
        ask += (char)(val+'0');
        tmp = make_test(ask);
        if(!tmp) {
            row++;
            ask.pop_back();
            ask += (char)(val^1+'0');
            if(row > 13) {i++; break;}
        }
        else row = 0;
    }
    int l = 0, r = i-1;
    string ask2;
    while(l < r) {
        int mid = (l + r + 1) >> 1;
        ask2.clear();
        for(int i = 0;i <= mid;i++) ask2 += ask[i];
        tmp = make_test(ask2);
        if(tmp) l = mid;
        else r = mid-1;
    }
    ask2.clear();
    for(i = 0;i <= l;i++) ask2 += ask[i];
    ask = ask2;
    int sz = ask.length();
    for(i = 0;i < n-sz;i++) {
        ask = "0"+ask;
        tmp = make_test(ask);
        if(!tmp) {
            ask[0] = '1';
        }
    }
    return ask;
}

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

dna.cpp:7: warning: ignoring '#pragma gcc optimize' [-Wunknown-pragmas]
    7 | #pragma gcc optimize("O3")
      | 
dna.cpp:8: warning: ignoring '#pragma gcc optimize' [-Wunknown-pragmas]
    8 | #pragma gcc optimize("Ofast")
      | 
dna.cpp:9: warning: ignoring '#pragma gcc optimize' [-Wunknown-pragmas]
    9 | #pragma gcc optimize("unroll-loops")
      | 
dna.cpp: In function 'std::string analyse(int, int)':
dna.cpp:37:32: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   37 |             ask += (char)(val^1+'0');
      |                               ~^~~~
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...