Submission #372498

#TimeUsernameProblemLanguageResultExecution timeMemory
372498cpp219Painting Squares (IOI20_squares)C++14
0 / 100
1 ms200 KiB
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")

#include<bits/stdc++.h>
#define ll int
#define ld long double
#define fs first
#define sc second
using namespace std;
typedef pair<ll,ll> LL;
const ll N = 2e3 + 9;
const ll mod = 1e9 + 7;

vector<ll> ans;
ll was[N],cur = 0;

void Init(ll n){
    was[0] = 1; ans.clear();
    for (ll i = 1;i <= 10;i++) ans.push_back(0);
    for (ll i = 11;i <= n;i++){
        cur &= ((1 << 9) - 1);
        if (!was[cur*2]) cur *= 2,ans.push_back(0);
        else cur = cur * 2 + 1,ans.push_back(1);
        was[cur] = 1;
    }
    while(ans.size() > n) ans.pop_back();
}

vector<ll> paint(ll n){
    if (!ans.size()) Init(n);
    vector<ll> v;
    for (auto i : ans) v.push_back(i); v.push_back(10);
    return v;
}

ll find_location(ll n,vector<ll> c){
    if (!ans.size()) Init(n);
    ll cnt = 0;
    for (auto i : c) if (i >= 0) cnt++;
    if (cnt != n) return n - cnt;
    for (ll i = 0;i < n - 9;i++){
        vector<ll> now;
        for (ll j = i;j <= i + 9;j++) now.push_back(ans[j]);
        if (now == c) return i;
    }
}
/*
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    #define task "tst"
    if (fopen(task".INP","r")){
        freopen(task".INP","r",stdin);
        //freopen(task".OUT","w",stdout);
    }
    ll len; cin>>len; paint(len); /// 00000000001000000001
    for (auto i : ans) cout<<i;

}
*/

Compilation message (stderr)

squares.cpp:2: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    2 | #pragma GCC optimization ("O3")
      | 
squares.cpp:3: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    3 | #pragma GCC optimization ("unroll-loops")
      | 
squares.cpp: In function 'void Init(int)':
squares.cpp:27:22: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   27 |     while(ans.size() > n) ans.pop_back();
      |           ~~~~~~~~~~~^~~
squares.cpp: In function 'std::vector<int> paint(int)':
squares.cpp:33:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   33 |     for (auto i : ans) v.push_back(i); v.push_back(10);
      |     ^~~
squares.cpp:33:40: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   33 |     for (auto i : ans) v.push_back(i); v.push_back(10);
      |                                        ^
squares.cpp: In function 'int find_location(int, std::vector<int>)':
squares.cpp:47:1: warning: control reaches end of non-void function [-Wreturn-type]
   47 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...