QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#432684#8784. Dwarfs' Bedtimeucup-team087#AC ✓14ms4112kbC++2026.4kb2024-06-07 15:10:312024-06-07 15:10:32

Judging History

你现在查看的是最新测评结果

  • [2024-06-07 15:10:32]
  • 评测
  • 测评结果:AC
  • 用时:14ms
  • 内存:4112kb
  • [2024-06-07 15:10:31]
  • 提交

answer

#ifndef LOCAL
#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#endif

#include <iostream>
#include <vector>
#include <set>
#include <cassert>

#include <coroutine>
#include <optional>

// edited cppcoro library (https://github.com/lewissbaker/cppcoro)
/*
Copyright 2017 Lewis Baker

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
namespace cppcoro {
template <typename T> class [[nodiscard]] recursive_generator {
  public:
    class promise_type final {
      public:
        promise_type() noexcept
            : m_value(nullptr),
              m_exception(nullptr),
              m_root(this),
              m_parentOrLeaf(this) {}

        promise_type(const promise_type&) = delete;
        promise_type(promise_type&&) = delete;

        auto get_return_object() noexcept {
            return recursive_generator<T>{*this};
        }

        std::suspend_always initial_suspend() noexcept {
            return {};
        }

        std::suspend_always final_suspend() noexcept {
            return {};
        }

        void unhandled_exception() noexcept {
            m_exception = std::current_exception();
        }

        void return_void() noexcept {}

        std::suspend_always yield_value(T& value) noexcept {
            m_value = std::addressof(value);
            return {};
        }

        std::suspend_always yield_value(T&& value) noexcept {
            m_value = std::addressof(value);
            return {};
        }

        auto yield_value(recursive_generator&& generator) noexcept {
            return yield_value(generator);
        }

        auto yield_value(recursive_generator& generator) noexcept {
            struct awaitable {
                awaitable(promise_type* childPromise)
                    : m_childPromise(childPromise) {}

                bool await_ready() noexcept {
                    return this->m_childPromise == nullptr;
                }

                void await_suspend(std::coroutine_handle<
                                   promise_type>) noexcept {}

                void await_resume() {
                    if (this->m_childPromise != nullptr) {
                        this->m_childPromise->throw_if_exception();
                    }
                }

              private:
                promise_type* m_childPromise;
            };

            if (generator.m_promise != nullptr) {
                m_root->m_parentOrLeaf = generator.m_promise;
                generator.m_promise->m_root = m_root;
                generator.m_promise->m_parentOrLeaf = this;
                generator.m_promise->resume();

                if (!generator.m_promise->is_complete()) {
                    return awaitable{generator.m_promise};
                }

                m_root->m_parentOrLeaf = this;
            }

            return awaitable{nullptr};
        }

        // Don't allow any use of 'co_await' inside the recursive_generator
        // coroutine.
        template <typename U>
        std::suspend_never await_transform(U&& value) = delete;

        void destroy() noexcept {
            std::coroutine_handle<promise_type>::from_promise(
                *this)
                .destroy();
        }

        void throw_if_exception() {
            if (m_exception != nullptr) {
                std::rethrow_exception(std::move(m_exception));
            }
        }

        bool is_complete() noexcept {
            return std::coroutine_handle<
                       promise_type>::from_promise(*this)
                .done();
        }

        T& value() noexcept {
            assert(this == m_root);
            assert(!is_complete());
            return *(m_parentOrLeaf->m_value);
        }

        void pull() noexcept {
            assert(this == m_root);
            assert(!m_parentOrLeaf->is_complete());

            m_parentOrLeaf->resume();

            while (m_parentOrLeaf != this && m_parentOrLeaf->is_complete()) {
                m_parentOrLeaf = m_parentOrLeaf->m_parentOrLeaf;
                m_parentOrLeaf->resume();
            }
        }

      private:
        void resume() noexcept {
            std::coroutine_handle<promise_type>::from_promise(
                *this)
                .resume();
        }

        std::add_pointer_t<T> m_value;
        std::exception_ptr m_exception;

        promise_type* m_root;

        // If this is the promise of the root generator then this field
        // is a pointer to the leaf promise.
        // For non-root generators this is a pointer to the parent promise.
        promise_type* m_parentOrLeaf;
    };

    recursive_generator() noexcept : m_promise(nullptr) {}

    recursive_generator(promise_type& promise) noexcept : m_promise(&promise) {}

    recursive_generator(recursive_generator&& other) noexcept
        : m_promise(other.m_promise) {
        other.m_promise = nullptr;
    }

    recursive_generator(const recursive_generator& other) = delete;
    recursive_generator& operator=(const recursive_generator& other) = delete;

    ~recursive_generator() {
        if (m_promise != nullptr) {
            m_promise->destroy();
        }
    }

    recursive_generator& operator=(recursive_generator&& other) noexcept {
        if (this != &other) {
            if (m_promise != nullptr) {
                m_promise->destroy();
            }

            m_promise = other.m_promise;
            other.m_promise = nullptr;
        }

        return *this;
    }

    class iterator {
      public:
        using iterator_category = std::input_iterator_tag;
        // What type should we use for counting elements of a potentially
        // infinite sequence?
        using difference_type = std::ptrdiff_t;
        using value_type = std::remove_reference_t<T>;
        using reference = std::conditional_t<std::is_reference_v<T>, T, T&>;
        using pointer = std::add_pointer_t<T>;

        iterator() noexcept : m_promise(nullptr) {}

        explicit iterator(promise_type* promise) noexcept
            : m_promise(promise) {}

        bool operator==(const iterator& other) const noexcept {
            return m_promise == other.m_promise;
        }

        bool operator!=(const iterator& other) const noexcept {
            return m_promise != other.m_promise;
        }

        iterator& operator++() {
            assert(m_promise != nullptr);
            assert(!m_promise->is_complete());

            m_promise->pull();
            if (m_promise->is_complete()) {
                auto* temp = m_promise;
                m_promise = nullptr;
                temp->throw_if_exception();
            }

            return *this;
        }

        void operator++(int) { (void)operator++(); }

        reference operator*() const noexcept {
            assert(m_promise != nullptr);
            return static_cast<reference>(m_promise->value());
        }

        pointer operator->() const noexcept {
            return std::addressof(operator*());
        }

      private:
        promise_type* m_promise;
    };

    iterator begin() {
        if (m_promise != nullptr) {
            m_promise->pull();
            if (!m_promise->is_complete()) {
                return iterator(m_promise);
            }

            m_promise->throw_if_exception();
        }

        return iterator(nullptr);
    }

    iterator end() noexcept { return iterator(nullptr); }

    void swap(recursive_generator& other) noexcept {
        std::swap(m_promise, other.m_promise);
    }

  private:
    friend class promise_type;

    promise_type* m_promise;
};

template <typename T>
void swap(recursive_generator<T>& a, recursive_generator<T>& b) noexcept {
    a.swap(b);
}
}  // namespace cppcoro

#include <bits/stdc++.h>
using namespace std;

using ll=long long;
//#define int ll

bool dbg=false;

#define rng(i,a,b) for(int i=int(a);i<int(b);i++)
#define rep(i,b) rng(i,0,b)
#define gnr(i,a,b) for(int i=int(b)-1;i>=int(a);i--)
#define per(i,b) gnr(i,0,b)
#define pb push_back
#define eb emplace_back
#define a first
#define b second
#define bg begin()
#define ed end()
#define all(x) x.bg,x.ed
#define si(x) int(x.size())
#ifdef LOCAL
#define dmp(x) cerr<<__LINE__<<" "<<#x<<" "<<x<<endl
#else
#define dmp(x) void(0)
#endif

template<class t,class u> bool chmax(t&a,u b){if(a<b){a=b;return true;}else return false;}
template<class t,class u> bool chmin(t&a,u b){if(b<a){a=b;return true;}else return false;}

template<class t> using vc=vector<t>;
template<class t> using vvc=vc<vc<t>>;

using pi=pair<int,int>;
using vi=vc<int>;
using vvi=vc<vc<int>>;

template<class t,class u>
ostream& operator<<(ostream& os,const pair<t,u>& p){
	return os<<"{"<<p.a<<","<<p.b<<"}";
}

template<class t> ostream& operator<<(ostream& os,const vc<t>& v){
	os<<"{";
	for(auto e:v)os<<e<<",";
	return os<<"}";
}

#define mp make_pair
#define mt make_tuple
#define one(x) memset(x,-1,sizeof(x))
#define zero(x) memset(x,0,sizeof(x))
#ifdef LOCAL
void dmpr(ostream&os){os<<endl;}
template<class T,class... Args>
void dmpr(ostream&os,const T&t,const Args&... args){
	os<<t<<" ";
	dmpr(os,args...);
}
#define dmp2(...) dmpr(cerr,__LINE__,##__VA_ARGS__)
#else
#define dmp2(...) void(0)
#endif

using uint=unsigned;
using ull=unsigned long long;

template<class t,size_t n>
ostream& operator<<(ostream&os,const array<t,n>&a){
	return os<<vc<t>(all(a));
}

ll rand_int(ll l, ll r) { //[l, r]
	//#ifdef LOCAL
	static mt19937_64 gen;
	/*#else
	static mt19937_64 gen(chrono::steady_clock::now().time_since_epoch().count());
	#endif*/
	return uniform_int_distribution<ll>(l, r)(gen);
}

ll rand_int(ll k){ //[0,k)
	return rand_int(0,k-1);
}
string rand_string(int n,char lw,char up){
	string s(n,'?');
	rep(i,n)s[i]=rand_int(lw,up);
	return s;
}

int current_run_id,run_batch_size=1000;
int calc_random_limit(){
	return current_run_id/run_batch_size+1;
}
template<class t>
void generate_single(t&a){
	a=rand_int(1,calc_random_limit());
}
void generate_single(string&a){
	int n;generate_single(n);
	a=rand_string(n,'a','b');
}
template<class t,class u>
void generate_single(pair<t,u>&a){
	generate_single(a.a);
	generate_single(a.b);
}
//https://trap.jp/post/1224/
template<class... Args>
void input(Args&... a){
	if(dbg){
		(generate_single(a),...);
	}else{
		(cin >> ... >> a);
	}
}
#define INT(...) int __VA_ARGS__;input(__VA_ARGS__)
#define LL(...) ll __VA_ARGS__;input(__VA_ARGS__)
#define ULL(...) ull __VA_ARGS__;input(__VA_ARGS__)
#define STR(...) string __VA_ARGS__;input(__VA_ARGS__)
#define CHR(...) char __VA_ARGS__;input(__VA_ARGS__)
#define DBL(...) double __VA_ARGS__;input(__VA_ARGS__)
#define LD(...) ld __VA_ARGS__;input(__VA_ARGS__)
#define overload3(a,b,c,d,...) d
#define VI2(name,size) vi name(size);rep(i_##name,size)input(name[i_##name]);
#define VI3(name,size,offset) vi name(size);rep(i_##name,size)input(name[i_##name]),name[i_##name]+=offset;
#define VI(...) overload3(__VA_ARGS__,VI3,VI2)(__VA_ARGS__)
#define VPI(name,size) vc<pi> name(size);rep(i_##name,size)input(name[i_##name]);
#define VVI(name,sizeN,sizeM) vvi name(sizeN,vi(sizeM));\
rep(i_##name,sizeN)rep(j_##name,sizeM)input(name[i_##name][j_##name]);
#define VS(name,size) vc<string> name(size);rep(i_##name,size)input(name[i_##name]);

#define overload5(a,b,c,d,e,f,...) f
#define VVC4(type,name,sizeN,sizeM) vvc<type> name(sizeN,vc<type>(sizeM));
#define VVC5(type,name,sizeN,sizeM,ini) vvc<type> name(sizeN,vc<type>(sizeM,ini));
#define VVC(...) overload5(__VA_ARGS__,VVC5,VVC4)(__VA_ARGS__)

template<class T>
T vvvc(T v){
	return v;
}

template<class T,class...Args>
auto vvvc(int n,T v,Args...args){
	return vector(n,vvvc(v,args...));
}

template<int i,class T>
void print_tuple(ostream&,const T&){
}

template<int i,class T,class H,class ...Args>
void print_tuple(ostream&os,const T&t){
	if(i)os<<",";
	os<<get<i>(t);
	print_tuple<i+1,T,Args...>(os,t);
}

template<class ...Args>
ostream& operator<<(ostream&os,const tuple<Args...>&t){
	os<<"{";
	print_tuple<0,tuple<Args...>,Args...>(os,t);
	return os<<"}";
}

ll read(){
	ll i;
	cin>>i;
	return i;
}

vi readvi(int n,int off=0){
	vi v(n);
	rep(i,n)v[i]=read()+off;
	return v;
}

pi readpi(int off=0){
	int a,b;cin>>a>>b;
	return pi(a+off,b+off);
}

template<class t>
void print_single(t x,int suc=1){
	cout<<x;
	if(suc==1){
		if(dbg)cout<<endl;
		else cout<<"\n";
	}
	if(suc==2)
		cout<<" ";
}

template<class t,class u>
void print_single(const pair<t,u>&p,int suc=1){
	print_single(p.a,2);
	print_single(p.b,suc);
}

template<class T>
void print_single(const vector<T>&v,int suc=1){
	rep(i,v.size())
		print_single(v[i],i==int(v.size())-1?suc:2);
}

template<class T>
void print_offset(const vector<T>&v,ll off,int suc=1){
	rep(i,v.size())
		print_single(v[i]+off,i==int(v.size())-1?suc:2);
}

template<class T,size_t N>
void print_single(const array<T,N>&v,int suc=1){
	rep(i,N)
		print_single(v[i],i==int(N)-1?suc:2);
}

template<class T>
void print(const T&t){
	print_single(t);
}

template<class T,class ...Args>
void print(const T&t,const Args&...args){
	print_single(t,2);
	print(args...);
}

template<class T>
void printvv(const vvc<T>&vs){
	for(const auto&row:vs)print(row);
}

string readString(){
	string s;
	cin>>s;
	return s;
}

template<class T>
T sq(const T& t){
	return t*t;
}

void YES(bool ex=true){
	cout<<"YES\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void NO(bool ex=true){
	cout<<"NO\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void Yes(bool ex=true){
	cout<<"Yes\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void No(bool ex=true){
	cout<<"No\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
//#define CAPITAL
/*
void yes(bool ex=true){
	#ifdef CAPITAL
	cout<<"YES"<<"\n";
	#else
	cout<<"Yes"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void no(bool ex=true){
	#ifdef CAPITAL
	cout<<"NO"<<"\n";
	#else
	cout<<"No"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}*/
void possible(bool ex=true){
	#ifdef CAPITAL
	cout<<"POSSIBLE"<<"\n";
	#else
	cout<<"Possible"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void impossible(bool ex=true){
	#ifdef CAPITAL
	cout<<"IMPOSSIBLE"<<"\n";
	#else
	cout<<"Impossible"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}

constexpr ll ten(int n){
	return n==0?1:ten(n-1)*10;
}

const ll infLL=LLONG_MAX/3;

#ifdef int
const int inf=infLL;
#else
const int inf=INT_MAX/2-100;
#endif

int topbit(signed t){
	return t==0?-1:31-__builtin_clz(t);
}
int topbit(ll t){
	return t==0?-1:63-__builtin_clzll(t);
}
int topbit(ull t){
	return t==0?-1:63-__builtin_clzll(t);
}
int botbit(signed a){
	return a==0?32:__builtin_ctz(a);
}
int botbit(ll a){
	return a==0?64:__builtin_ctzll(a);
}
int botbit(ull a){
	return a==0?64:__builtin_ctzll(a);
}
int popcount(signed t){
	return __builtin_popcount(t);
}
int popcount(ll t){
	return __builtin_popcountll(t);
}
int popcount(ull t){
	return __builtin_popcountll(t);
}
int bitparity(ll t){
	return __builtin_parityll(t);
}
bool ispow2(int i){
	return i&&(i&-i)==i;
}
ll mask(int i){
	return (ll(1)<<i)-1;
}
ull umask(int i){
	return (ull(1)<<i)-1;
}
ll minp2(ll n){
	if(n<=1)return 1;
	else return ll(1)<<(topbit(n-1)+1);
}

bool inc(int a,int b,int c){
	return a<=b&&b<=c;
}

template<class S> void mkuni(S&v){
	sort(all(v));
	v.erase(unique(all(v)),v.ed);
}

template<class t> bool isuni(vc<t> v){
	int s=si(v);
	mkuni(v);
	return si(v)==s;
}

template<class t>
void myshuffle(vc<t>&a){
	rep(i,si(a))swap(a[i],a[rand_int(0,i)]);
}

template<class S,class u>
int lwb(const S&v,const u&a){
	return lower_bound(all(v),a)-v.bg;
}
template<class t,class u>
bool bis(const vc<t>&v,const u&a){
	return binary_search(all(v),a);
}

//VERIFY: yosupo
//KUPC2017J
//AOJDSL1A
//without rank
struct unionfind{
	vi p,s;
	int c;
	unionfind(int n):p(n,-1),s(n,1),c(n){}
	void clear(){
		fill(all(p),-1);
		fill(all(s),1);
		c=si(p);
	}
	int find(int a){
		return p[a]==-1?a:(p[a]=find(p[a]));
	}
	//set b to a child of a
	bool unite(int a,int b){
		a=find(a);
		b=find(b);
		if(a==b)return false;
		p[b]=a;
		s[a]+=s[b];
		c--;
		return true;
	}
	bool same(int a,int b){
		return find(a)==find(b);
	}
	int sz(int a){
		return s[find(a)];
	}
};

vvc<int> readGraph(int n,int m){
	vvc<int> g(n);
	rep(i,m){
		int a,b;
		cin>>a>>b;
		//sc.read(a,b);
		a--;b--;
		g[a].pb(b);
		g[b].pb(a);
	}
	return g;
}

vvc<int> rand_tree(int n){
	vvc<int> t(n);
	unionfind uf(n);
	while(uf.c>1){
		int a=rand_int(n);
		int b=rand_int(n);
		if(uf.unite(a,b)){
			t[a].pb(b);
			t[b].pb(a);
		}
	}
	return t;
}

vvc<int> readTree(int n){
	if(dbg){
		return rand_tree(n);
	}else{
		return readGraph(n,n-1);
	}
}

void printTree(const vvc<int> t){
	int n=si(t);
	int degsum=0;
	rep(i,n)degsum+=si(t[i]);
	if(degsum==n-1){
		//directed
		rep(i,si(t))for(auto j:t[i]){
			print(i+1,j+1);
		}
	}else if(degsum==2*(n-1)){
		//undirected
		rep(i,si(t))for(auto j:t[i])if(i<j){
			print(i+1,j+1);
		}
	}else{
		assert(false);
	}
}

template<class t>
vc<t> presum(const vc<t>&a){
	vc<t> s(si(a)+1);
	rep(i,si(a))s[i+1]=s[i]+a[i];
	return s;
}
vc<ll> presum(const vi&a){
	vc<ll> s(si(a)+1);
	rep(i,si(a))s[i+1]=s[i]+a[i];
	return s;
}
//BIT で数列を管理するときに使う (CF850C)
template<class t>
vc<t> predif(vc<t> a){
	gnr(i,1,si(a))a[i]-=a[i-1];
	return a;
}
template<class t>
vvc<ll> imos(const vvc<t>&a){
	int n=si(a),m=si(a[0]);
	vvc<ll> b(n+1,vc<ll>(m+1));
	rep(i,n)rep(j,m)
		b[i+1][j+1]=b[i+1][j]+b[i][j+1]-b[i][j]+a[i][j];
	return b;
}

//verify してないや
void transvvc(int&n,int&m){
	swap(n,m);
}
template<class t,class... Args>
void transvvc(int&n,int&m,vvc<t>&a,Args&...args){
	assert(si(a)==n);
	vvc<t> b(m,vi(n));
	rep(i,n){
		assert(si(a[i])==m);
		rep(j,m)b[j][i]=a[i][j];
	}
	a.swap(b);
	transvvc(n,m,args...);
}
//CF854E
void rotvvc(int&n,int&m){
	swap(n,m);
}
template<class t,class... Args>
void rotvvc(int&n,int&m,vvc<t>&a,Args&...args){
	assert(si(a)==n);
	vvc<t> b(m,vi(n));
	rep(i,n){
		assert(si(a[i])==m);
		rep(j,m)b[m-1-j][i]=a[i][j];
	}
	a.swap(b);
	rotvvc(n,m,args...);
}

//ソートして i 番目が idx[i]
//CF850C
template<class t>
vi sortidx(const vc<t>&a){
	int n=si(a);
	vi idx(n);iota(all(idx),0);
	sort(all(idx),[&](int i,int j){return a[i]<a[j];});
	return idx;
}
//vs[i]=a[idx[i]]
//例えば sortidx で得た idx を使えば単にソート列になって返ってくる
//CF850C
template<class t>
vc<t> a_idx(const vc<t>&a,const vi&idx){
	int n=si(a);
	assert(si(idx)==n);
	vc<t> vs(n);
	rep(i,n)vs[i]=a[idx[i]];
	return vs;
}
//CF850C
vi invperm(const vi&p){
	int n=si(p);
	vi q(n);
	rep(i,n)q[p[i]]=i;
	return q;
}

template<class t,class s=t>
s SUM(const vc<t>&a){
	return accumulate(all(a),s(0));
}
template<class t,size_t K,class s=t>
s SUM(const array<t,K>&a){
	return accumulate(all(a),s(0));
}

template<class t>
t MAX(const vc<t>&a){
	return *max_element(all(a));
}

template<class t>
pair<t,int> MAXi(const vc<t>&a){
	auto itr=max_element(all(a));
	return mp(*itr,itr-a.bg);
}

template<class A>
auto MIN(const A&a){
	return *min_element(all(a));
}

template<class t>
pair<t,int> MINi(const vc<t>&a){
	auto itr=min_element(all(a));
	return mp(*itr,itr-a.bg);
}

vi vid(int n){
	vi res(n);iota(all(res),0);
	return res;
}

template<class S>
void soin(S&s){
	sort(all(s));
}

template<class S,class F>
void soin(S&s,F&&f){
	sort(all(s),forward<F>(f));
}

template<class S>
S soout(S s){
	soin(s);
	return s;
}

template<class S>
void rein(S&s){
	reverse(all(s));
}

template<class S>
S reout(S s){
	rein(s);
	return s;
}

template<class t,class u>
pair<t,u>&operator+=(pair<t,u>&a,pair<t,u> b){
	a.a+=b.a;a.b+=b.b;return a;}
template<class t,class u>
pair<t,u>&operator-=(pair<t,u>&a,pair<t,u> b){
	a.a-=b.a;a.b-=b.b;return a;}
template<class t,class u>
pair<t,u> operator+(pair<t,u> a,pair<t,u> b){return mp(a.a+b.a,a.b+b.b);}
template<class t,class u>
pair<t,u> operator-(pair<t,u> a,pair<t,u> b){return mp(a.a-b.a,a.b-b.b);}
template<class t,class u,class v>
pair<t,u>&operator*=(pair<t,u>&a,v b){
	a.a*=b;a.b*=b;return a;}
template<class t,class u,class v>
pair<t,u> operator*(pair<t,u> a,v b){return a*=b;}
template<class t,class u>
pair<t,u> operator-(pair<t,u> a){return mp(-a.a,-a.b);}
namespace std{
template<class t,class u>
istream&operator>>(istream&is,pair<t,u>&a){
	return is>>a.a>>a.b;
}
}

template<class t>
t gpp(vc<t>&vs){
	assert(si(vs));
	t res=move(vs.back());
	vs.pop_back();
	return res;
}

template<class t,class u>
void pb(vc<t>&a,const vc<u>&b){
	a.insert(a.ed,all(b));
}

template<class t,class...Args>
vc<t> cat(vc<t> a,Args&&...b){
	(pb(a,forward<Args>(b)),...);
	return a;
}

template<class t,class u>
vc<t>& operator+=(vc<t>&a,u x){
	for(auto&v:a)v+=x;
	return a;
}

template<class t,class u>
vc<t> operator+(vc<t> a,u x){
	return a+=x;
}

template<class t>
vc<t>& operator+=(vc<t>&a,const vc<t>&b){
	a.resize(max(si(a),si(b)));
	rep(i,si(b))a[i]+=b[i];
	return a;
}

template<class t>
vc<t> operator+(const vc<t>&a,const vc<t>&b){
	vc<t> c(max(si(a),si(b)));
	rep(i,si(a))c[i]+=a[i];
	rep(i,si(b))c[i]+=b[i];
	return c;
}

template<class t,class u>
vc<t>& operator-=(vc<t>&a,u x){
	for(auto&v:a)v-=x;
	return a;
}
template<class t,class u>
vc<t>& operator-(vc<t> a,u x){
	return a-=x;
}

template<class t,class u>
vc<t>& operator*=(vc<t>&a,u x){
	for(auto&v:a)v*=x;
	return a;
}
template<class t,class u>
vc<t>& operator*(vc<t> a,u x){
	return a*=x;
}

template<class t,class u>
vc<t>& operator/=(vc<t>&a,u x){
	for(auto&v:a)v/=x;
	return a;
}
template<class t,class u>
vc<t>& operator/(vc<t> a,u x){
	return a/=x;
}

template<class t,class u>
void remval(vc<t>&a,const u&v){
	a.erase(remove(all(a),v),a.ed);
}
//消した要素の個数を返してくれる
//UCUP 2-8-F
template<class t,class F>
int remif(vc<t>&a,F f){
	auto itr=remove_if(all(a),f);
	int res=a.ed-itr;
	a.erase(itr,a.ed);
	return res;
}

template<class VS,class u>
void fila(VS&vs,const u&a){
	fill(all(vs),a);
}

template<class t,class u>
int findid(const vc<t>&vs,const u&a){
	auto itr=find(all(vs),a);
	if(itr==vs.ed)return -1;
	else return itr-vs.bg;
}

template<class t>
void rtt(vc<t>&vs,int i){
	rotate(vs.bg,vs.bg+i,vs.ed);
}

//Multiuni2023-8 C
//f(lw)=false,...,f(n-1)=false,f(n)=true,...,f(up)=true,
//のときに n を返す
template<class F>
int find_min_true(int lw,int up,F f){
	while(up-lw>1){
		const int mid=(lw+up)/2;
		if(f(mid))up=mid;
		else lw=mid;
	}
	return up;
}
//f(lw)=true,f(up)=false
template<class F>
int find_max_true(int lw,int up,F f){
	while(up-lw>1){
		const int mid=(lw+up)/2;
		if(f(mid))lw=mid;
		else up=mid;
	}
	return lw;
}

template<class t> using pqmin=priority_queue<t,vc<t>,greater<t>>;
template<class t> using pqmax=priority_queue<t>;
using T=tuple<int,int,int>;

ll fld(ll a, ll b) { // floored division
	return a / b - ((a ^ b) < 0 && a % b); }
ll cld(ll a, ll b) { // ceiled division
	return a / b + ((a ^ b) > 0 && a % b); }
ll rem(ll a,ll b){
	return a-fld(a,b)*b;}

vi god;
vi qcnt;
int pret=0;

bool ask(int t,int idx){
	assert(++qcnt[idx]<=50);
	assert(pret<=t);
	pret=t;
	assert(t<1440);
	if(dbg){
		int v=rem(t-god[idx],1440);
		if(v<720)return 0;
		else return 1;
	}else{
		int h=t/60,m=t%60;
		printf("at %02d:%02d check %d\n",h,m,idx+1);
		fflush(stdout);
		STR(s);
		return s=="awake";
	}
}

vi ans;

cppcoro::recursive_generator<int> work(int idx){
	co_yield 0;
	bool ini=ask(0,idx);
	
	//dmp2(idx,ini);
	
	int R=49;
	int pre=0;
	while(R>0){
		int nx=min(pre+R,720);
		co_yield nx;
		bool z=ask(nx,idx);
		//dmp2(nx,z);
		if(z!=ini){
			int ini_start=pre+720+1;
			while(ini_start<nx+720){
				co_yield ini_start;
				if(ask(ini_start,idx)==ini){
					break;
				}else{
					ini_start++;
				}
			}
			//dmp(ini_start);
			if(ini)ini_start=(ini_start+720)%1440;
			//return ini_start%1440;
			ans[idx]=ini_start%1440;
			co_yield (int)inf;
		}
		pre=nx;
		R--;
	}
	assert(false);
}

void slv(){
	INT(n);
	
	if(dbg){
		god.resize(n);
		rep(i,n)god[i]=rand_int(1440);
		dmp(god);
	}
	
	qcnt.assign(n,0);
	ans.assign(n,-1);
	pret=0;
	
	vc<cppcoro::recursive_generator<int>> gs;
	rep(i,n)gs.pb(work(i));
	vc<cppcoro::recursive_generator<int>::iterator> itrs;
	rep(i,n)itrs.pb(gs[i].bg);
	
	while(1){
		int val=inf,idx=-1;
		rep(i,n){
			if(chmin(val,*itrs[i]))idx=i;
		}
		if(val==inf)break;
		itrs[idx]++;
	}
	
	if(dbg){
		assert(ans==god);
	}
	
	printf("answer\n");
	rep(i,n){
		int h=ans[i]/60,m=ans[i]%60;
		printf("%02d:%02d\n",h,m);
	}
	fflush(stdout);
}

signed main(signed argc,char*argv[]){
	if(argc>1&&strcmp(argv[1],"D")==0)dbg=true;
	
	//cin.tie(0);
	//ios::sync_with_stdio(0);
	//cout<<fixed<<setprecision(20);
	
	if(dbg){
		while(1){
			if(current_run_id%run_batch_size==0){
				cerr<<"Current Run "<<current_run_id<<endl;
			}
			slv();
			current_run_id++;
		}
	}else{
		//int t;cin>>t;rep(_,t)
		slv();
	}
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 4012kb

input:

2
asleep
awake
asleep
awake
asleep
awake
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
a...

output:

at 00:00 check 1
at 00:00 check 2
at 00:49 check 1
at 00:49 check 2
at 01:37 check 1
at 01:37 check 2
at 02:24 check 1
at 02:24 check 2
at 03:10 check 1
at 03:55 check 1
at 04:39 check 1
at 05:22 check 1
at 06:04 check 1
at 06:45 check 1
at 07:25 check 1
at 08:04 check 1
at 13:38 check 2
at 13:39 ch...

result:

ok n = 2, total = 55, max = 47

Test #2:

score: 0
Accepted
time: 1ms
memory: 3764kb

input:

1
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake

output:

at 00:00 check 1
at 00:49 check 1
at 01:37 check 1
at 02:24 check 1
at 03:10 check 1
at 03:55 check 1
at 04:39 check 1
at 05:22 check 1
at 06:04 check 1
at 06:45 check 1
at 07:25 check 1
at 08:04 check 1
at 08:42 check 1
at 09:19 check 1
at 09:55 check 1
at 10:30 check 1
at 11:04 check 1
at 11:37 ch...

result:

ok n = 1, total = 41, max = 41

Test #3:

score: 0
Accepted
time: 1ms
memory: 3744kb

input:

3
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
awake
a...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:49 check 1
at 00:49 check 2
at 00:49 check 3
at 01:37 check 1
at 01:37 check 2
at 01:37 check 3
at 02:24 check 1
at 02:24 check 2
at 02:24 check 3
at 03:10 check 1
at 03:10 check 2
at 03:10 check 3
at 03:55 check 1
at 03:55 check 2
at 03:55 ch...

result:

ok n = 3, total = 123, max = 41

Test #4:

score: 0
Accepted
time: 5ms
memory: 4016kb

input:

24
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awak...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 24, total = 768, max = 47

Test #5:

score: 0
Accepted
time: 0ms
memory: 3740kb

input:

24
awake
asleep
asleep
asleep
awake
asleep
asleep
awake
asleep
awake
awake
awake
asleep
asleep
awake
awake
awake
asleep
asleep
asleep
awake
awake
asleep
awake
awake
asleep
asleep
asleep
awake
asleep
asleep
awake
asleep
awake
awake
awake
asleep
asleep
awake
awake
awake
asleep
asleep
asleep
awake
awak...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 24, total = 746, max = 46

Test #6:

score: 0
Accepted
time: 6ms
memory: 3872kb

input:

100
asleep
awake
awake
asleep
asleep
awake
asleep
asleep
asleep
asleep
asleep
awake
awake
awake
asleep
awake
asleep
asleep
asleep
asleep
awake
asleep
awake
asleep
asleep
awake
asleep
awake
asleep
awake
asleep
asleep
asleep
awake
awake
asleep
asleep
asleep
awake
awake
awake
asleep
awake
awake
awake
a...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 3172, max = 50

Test #7:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

100
asleep
asleep
asleep
awake
awake
asleep
awake
asleep
awake
asleep
asleep
asleep
awake
asleep
asleep
awake
awake
asleep
awake
asleep
asleep
awake
awake
asleep
asleep
awake
awake
awake
asleep
awake
asleep
awake
asleep
asleep
awake
awake
awake
asleep
awake
awake
awake
asleep
awake
awake
awake
awake...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 3071, max = 50

Test #8:

score: 0
Accepted
time: 6ms
memory: 3756kb

input:

100
awake
awake
awake
asleep
asleep
awake
awake
asleep
asleep
awake
awake
asleep
awake
asleep
asleep
awake
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
awake
awake
asleep
awake
asleep
awake
awake
awake
asleep
awake
...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 3061, max = 50

Test #9:

score: 0
Accepted
time: 0ms
memory: 3740kb

input:

100
awake
awake
asleep
awake
asleep
awake
asleep
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
asleep
awake
awake
awake
awake
asleep
awake
awake
awake
awake
awake
asleep
asleep
asleep
awake
asleep
asleep
awake
asleep
awake
asleep
asleep
awake
asleep
awake
awake
asleep
awake
awake
awake
as...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 3146, max = 50

Test #10:

score: 0
Accepted
time: 3ms
memory: 3864kb

input:

100
awake
awake
awake
awake
awake
asleep
awake
awake
asleep
asleep
awake
awake
awake
asleep
awake
awake
awake
asleep
asleep
awake
asleep
asleep
asleep
awake
awake
awake
asleep
asleep
awake
asleep
asleep
asleep
awake
awake
asleep
awake
asleep
awake
awake
awake
asleep
awake
asleep
asleep
asleep
awake
...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 2966, max = 50

Test #11:

score: 0
Accepted
time: 6ms
memory: 3756kb

input:

100
asleep
awake
awake
awake
asleep
asleep
awake
awake
awake
awake
awake
asleep
awake
awake
asleep
asleep
awake
awake
awake
awake
asleep
asleep
asleep
awake
asleep
asleep
asleep
awake
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
awake
asleep
awake
asleep
awake
awake
asleep
awake
asl...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 2824, max = 50

Test #12:

score: 0
Accepted
time: 12ms
memory: 3824kb

input:

100
awake
awake
awake
asleep
asleep
awake
asleep
awake
asleep
awake
awake
awake
asleep
asleep
asleep
awake
awake
awake
asleep
awake
awake
asleep
awake
awake
awake
awake
asleep
awake
asleep
awake
asleep
asleep
awake
awake
asleep
awake
asleep
asleep
asleep
awake
asleep
awake
awake
awake
awake
awake
as...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 3076, max = 50

Test #13:

score: 0
Accepted
time: 4ms
memory: 3896kb

input:

100
asleep
awake
awake
awake
asleep
awake
awake
asleep
asleep
awake
awake
asleep
awake
awake
awake
awake
asleep
asleep
asleep
awake
asleep
awake
awake
awake
asleep
asleep
awake
asleep
awake
asleep
asleep
asleep
awake
asleep
awake
asleep
asleep
awake
asleep
awake
awake
asleep
awake
awake
asleep
aslee...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 3207, max = 50

Test #14:

score: 0
Accepted
time: 3ms
memory: 4008kb

input:

100
awake
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
awake
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
awake
asleep
awake
awake
asleep
asleep
awake
awake
awake
asleep
awake
awake
awake
awake
awake
asleep
asleep
awake
asleep
awake
asleep
aslee...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 2944, max = 50

Test #15:

score: 0
Accepted
time: 0ms
memory: 3860kb

input:

100
awake
awake
awake
asleep
awake
asleep
awake
asleep
asleep
awake
asleep
awake
awake
asleep
awake
asleep
awake
awake
asleep
awake
awake
asleep
asleep
asleep
asleep
awake
asleep
awake
asleep
awake
awake
awake
asleep
asleep
awake
asleep
asleep
awake
awake
asleep
awake
awake
awake
awake
awake
awake
a...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 3109, max = 50

Test #16:

score: 0
Accepted
time: 0ms
memory: 3744kb

input:

100
awake
asleep
awake
asleep
awake
awake
awake
awake
awake
asleep
asleep
awake
asleep
awake
asleep
awake
awake
asleep
asleep
asleep
asleep
awake
awake
awake
asleep
awake
awake
asleep
asleep
asleep
awake
asleep
asleep
asleep
awake
asleep
asleep
asleep
awake
awake
awake
awake
asleep
asleep
asleep
awa...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 2962, max = 50

Test #17:

score: 0
Accepted
time: 8ms
memory: 3756kb

input:

100
asleep
asleep
asleep
awake
awake
awake
awake
asleep
awake
asleep
awake
asleep
asleep
asleep
awake
asleep
awake
awake
awake
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
awake
awake
awake
asleep
asleep
asleep
asleep
asleep
awake
awake
awake
awake
asleep
awake
awake
awake
awake
asl...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 3216, max = 50

Test #18:

score: 0
Accepted
time: 14ms
memory: 3736kb

input:

100
awake
asleep
asleep
awake
awake
asleep
asleep
asleep
asleep
asleep
awake
asleep
awake
asleep
awake
asleep
asleep
asleep
awake
awake
asleep
asleep
asleep
awake
awake
awake
asleep
asleep
awake
asleep
asleep
awake
awake
asleep
asleep
awake
awake
asleep
asleep
asleep
awake
asleep
asleep
awake
asleep...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 2914, max = 50

Test #19:

score: 0
Accepted
time: 6ms
memory: 3780kb

input:

100
asleep
awake
awake
asleep
awake
awake
awake
asleep
asleep
asleep
awake
awake
asleep
awake
asleep
asleep
awake
asleep
awake
awake
asleep
awake
asleep
awake
awake
awake
asleep
asleep
asleep
awake
awake
asleep
awake
asleep
asleep
awake
asleep
awake
awake
awake
asleep
asleep
asleep
awake
awake
awake...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 2861, max = 50

Test #20:

score: 0
Accepted
time: 4ms
memory: 3924kb

input:

100
awake
awake
awake
asleep
asleep
awake
asleep
awake
asleep
awake
awake
awake
asleep
asleep
asleep
awake
awake
asleep
awake
awake
asleep
asleep
awake
asleep
asleep
asleep
asleep
awake
asleep
awake
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
asleep
asleep
awake
awake
asleep
awake
...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 100, total = 3115, max = 50

Test #21:

score: 0
Accepted
time: 7ms
memory: 4040kb

input:

98
asleep
asleep
awake
asleep
awake
awake
asleep
awake
awake
awake
awake
awake
asleep
awake
awake
asleep
awake
asleep
asleep
awake
awake
awake
awake
asleep
asleep
awake
asleep
asleep
asleep
asleep
awake
awake
asleep
asleep
awake
awake
asleep
awake
asleep
awake
asleep
awake
asleep
asleep
awake
asleep...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 98, total = 2934, max = 50

Test #22:

score: 0
Accepted
time: 0ms
memory: 3752kb

input:

99
asleep
asleep
asleep
awake
awake
awake
awake
awake
asleep
awake
asleep
asleep
awake
asleep
asleep
asleep
asleep
awake
awake
awake
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
awake
asleep
awake
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
asleep
awake
awak...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 99, total = 2913, max = 50

Test #23:

score: 0
Accepted
time: 3ms
memory: 3832kb

input:

95
asleep
awake
awake
awake
asleep
asleep
asleep
awake
awake
awake
asleep
awake
asleep
awake
asleep
asleep
awake
asleep
awake
asleep
asleep
awake
awake
asleep
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
asleep
awake
asleep
awake
asleep
asleep
awake
awake
asleep
awake
asleep
asl...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 95, total = 2878, max = 50

Test #24:

score: 0
Accepted
time: 0ms
memory: 3836kb

input:

93
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awa...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 93, total = 2962, max = 50

Test #25:

score: 0
Accepted
time: 11ms
memory: 3924kb

input:

93
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awa...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 93, total = 2833, max = 50

Test #26:

score: 0
Accepted
time: 5ms
memory: 4112kb

input:

97
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awa...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 97, total = 3099, max = 50

Test #27:

score: 0
Accepted
time: 9ms
memory: 3752kb

input:

95
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asl...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 95, total = 3099, max = 50

Test #28:

score: 0
Accepted
time: 8ms
memory: 3760kb

input:

97
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asl...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 97, total = 2965, max = 50

Test #29:

score: 0
Accepted
time: 7ms
memory: 3944kb

input:

96
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asl...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 96, total = 3008, max = 50

Test #30:

score: 0
Accepted
time: 9ms
memory: 3892kb

input:

92
awake
awake
awake
awake
awake
awake
asleep
awake
awake
asleep
awake
awake
awake
asleep
asleep
awake
asleep
awake
awake
awake
asleep
awake
asleep
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
asleep
awake
awake
awake
a...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 92, total = 2698, max = 50

Test #31:

score: 0
Accepted
time: 9ms
memory: 4008kb

input:

95
awake
asleep
asleep
awake
awake
awake
asleep
awake
awake
awake
asleep
asleep
asleep
asleep
asleep
awake
awake
awake
awake
awake
awake
awake
asleep
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
awake
asleep
awake
awake...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 95, total = 2721, max = 50

Test #32:

score: 0
Accepted
time: 6ms
memory: 3828kb

input:

99
awake
asleep
awake
awake
awake
awake
asleep
awake
awake
awake
awake
awake
awake
awake
awake
awake
asleep
awake
awake
awake
awake
awake
awake
asleep
awake
awake
awake
awake
asleep
awake
asleep
asleep
asleep
awake
awake
awake
awake
awake
asleep
awake
awake
asleep
awake
awake
asleep
awake
asleep
awa...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 99, total = 2982, max = 50

Test #33:

score: 0
Accepted
time: 3ms
memory: 3964kb

input:

96
asleep
awake
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
awake
awake
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
awake
asleep
awake
asleep
asleep
asle...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 96, total = 2989, max = 49

Test #34:

score: 0
Accepted
time: 0ms
memory: 4000kb

input:

97
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
asleep
asleep
awake
awake
asleep
asleep
asleep
awake
asleep
asleep
asleep
asleep
awake
awake
asleep
asleep
asleep
asleep
awake
asle...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 97, total = 3176, max = 50

Test #35:

score: 0
Accepted
time: 3ms
memory: 3868kb

input:

98
asleep
asleep
asleep
asleep
awake
asleep
awake
asleep
asleep
awake
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
awake
asleep
asleep
awake
awake
asleep
asleep
asleep
asleep
asleep
asleep
awake
asleep
asleep
awake
asleep
awake
asleep
asleep
asleep
asleep
asleep...

output:

at 00:00 check 1
at 00:00 check 2
at 00:00 check 3
at 00:00 check 4
at 00:00 check 5
at 00:00 check 6
at 00:00 check 7
at 00:00 check 8
at 00:00 check 9
at 00:00 check 10
at 00:00 check 11
at 00:00 check 12
at 00:00 check 13
at 00:00 check 14
at 00:00 check 15
at 00:00 check 16
at 00:00 check 17
at ...

result:

ok n = 98, total = 3041, max = 50

Extra Test:

score: 0
Extra Test Passed