Submission #224908

# Submission time Handle Problem Language Result Execution time Memory
224908 2020-04-19T05:05:06 Z bukanYohandi Solar Storm (NOI20_solarstorm) C++14
36 / 100
856 ms 23672 KB
#include <bits/stdc++.h>
/*
	Karya anak bangsa yang paling agung
	Author : Yohandi or... bukan..
*/

#define fs first
#define sc second
#define pb push_back
#define eb emplace_back

#define all(a) a.begin(),a.end()
#define lb(a,x) (lower_bound(all(a),x)-a.begin())
#define ub(a,x) (upper_bound(all(a),x)-a.begin())

#define rep(a,x,y) for(int a=(int)x;a<=(int)y;++a)
#define repd(a,x,y,d) for(int a=(int)x;a<=(int)y;a+=d)
#define res(a,x,y) for(int a=(int)x;a>=(int)y;--a)
#define resd(a,x,y,d) for(int a=(int)x;a>=(int)y;a-=d)

// Ordered Set, Ordered Multiset
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define o_set tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>
#define o_multiset tree<int,null_type,less_equal<int>,rb_tree_tag,tree_order_statistics_node_update>
using namespace __gnu_pbds;
// .order_of_key(x) -> Number of elements less than x
// * .find_by_order(k) -> Kth smallest element (0-based)
// .erase(x) -> Remove all elements equal to x

#pragma GCC optimize("Ofast")
#pragma GCC optimize ("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")

using namespace std;
using lint=long long;

mt19937 rng(time(NULL));

lint Power(lint A,lint B,lint C){
	if(!B) return 1LL;
	lint tmp=Power(A,B>>1,C);
	return tmp*tmp%C*(B&1?A:1)%C;
}

int T,N,S;
lint K;
lint V[1111111],D[1111111];

bool Solve2(){
    if(S!=1) return 0;
    for(int i=1;i<=N-1;++i)
        if(D[i]!=1) return 0;
    if(2*K+1>=N){
        cout<<1<<endl;
        cout<<(N+1)/2<<endl;
    } else {
        for(int i=1;i<=N;++i) V[i]+=V[i-1];
        pair<lint,int> Ans={-1,0};
        for(int i=K+1;i<=N-K;++i)
            Ans=max(Ans,{V[i+K]-V[i-K-1],i});
        cout<<1<<endl;
        cout<<Ans.sc<<endl;
    }
    return 1;
}

bool Solve3(){
    if(S!=1) return 0;
    for(int i=1;i<=N-1;++i) D[i]+=D[i-1];
    for(int i=1;i<=N;++i) V[i]+=V[i-1];
    pair<lint,int> Ans={-1,0};
    int Le=1,Ri=1;
    for(int i=1;i<=N;++i){
        while(D[Ri-1]-D[i-1]<=K&&Ri<=N) Ri++;
        while(D[i-1]-D[Le-1]>K&&Le<i) Le++;
        Ans=max(Ans,{V[Ri-1]-V[Le-1],i});
    }
    cout<<1<<endl;
    cout<<Ans.sc<<endl;
    return 1;
}

bool Solve4(){
    if(K!=1) return 0;
    for(int i=1;i<=N-1;++i)
        if(D[i]!=2) return 0;
    for(int i=1;i<=N;++i) V[i]+=V[i-1];
    pair<lint,int> Ans={-1,0};
    for(int i=S;i<=N;++i)
        Ans=max(Ans,{V[i]-V[i-S],i});
    cout<<S<<endl;
    for(int i=Ans.sc-S+1;i<=Ans.sc;++i)
        cout<<i<<((i==Ans.sc)?"\n":" ");
    return 1;
}  

int main(){
//	ios_base::sync_with_stdio(0);
//	cin.tie(0); cout.tie(0);
	T=1;
//	cin>>T;
	rep(t,1,T){
        cin>>N>>S>>K;
        for(int i=1;i<=N-1;++i) cin>>D[i];
        for(int i=1;i<=N;++i) cin>>V[i];
        if(Solve2()) return 0;
        if(Solve3()) return 0;
        if(Solve4()) return 0;
	}
	return 0;
}


# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 13 ms 640 KB Output is correct
3 Correct 14 ms 640 KB Output is correct
4 Correct 8 ms 512 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 11 ms 512 KB Output is correct
7 Correct 11 ms 512 KB Output is correct
8 Correct 13 ms 640 KB Output is correct
9 Correct 10 ms 512 KB Output is correct
10 Correct 13 ms 640 KB Output is correct
11 Correct 15 ms 640 KB Output is correct
12 Correct 9 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 586 ms 16248 KB Output is correct
2 Correct 368 ms 11784 KB Output is correct
3 Correct 392 ms 12408 KB Output is correct
4 Correct 423 ms 13304 KB Output is correct
5 Correct 503 ms 14632 KB Output is correct
6 Correct 664 ms 18596 KB Output is correct
7 Correct 443 ms 13432 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 13 ms 640 KB Output is correct
3 Correct 14 ms 640 KB Output is correct
4 Correct 8 ms 512 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 11 ms 512 KB Output is correct
7 Correct 11 ms 512 KB Output is correct
8 Correct 13 ms 640 KB Output is correct
9 Correct 10 ms 512 KB Output is correct
10 Correct 13 ms 640 KB Output is correct
11 Correct 15 ms 640 KB Output is correct
12 Correct 9 ms 512 KB Output is correct
13 Correct 586 ms 16248 KB Output is correct
14 Correct 368 ms 11784 KB Output is correct
15 Correct 392 ms 12408 KB Output is correct
16 Correct 423 ms 13304 KB Output is correct
17 Correct 503 ms 14632 KB Output is correct
18 Correct 664 ms 18596 KB Output is correct
19 Correct 443 ms 13432 KB Output is correct
20 Correct 571 ms 11764 KB Output is correct
21 Correct 658 ms 13816 KB Output is correct
22 Correct 723 ms 15716 KB Output is correct
23 Correct 657 ms 16448 KB Output is correct
24 Correct 672 ms 14944 KB Output is correct
25 Correct 684 ms 14892 KB Output is correct
26 Correct 503 ms 12408 KB Output is correct
27 Correct 659 ms 14840 KB Output is correct
28 Correct 691 ms 14928 KB Output is correct
29 Correct 856 ms 17936 KB Output is correct
30 Correct 680 ms 15608 KB Output is correct
31 Correct 590 ms 14076 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 601 ms 21500 KB Output is correct
2 Correct 331 ms 12408 KB Output is correct
3 Correct 364 ms 12920 KB Output is correct
4 Correct 530 ms 16864 KB Output is correct
5 Correct 545 ms 16464 KB Output is correct
6 Correct 544 ms 17272 KB Output is correct
7 Correct 724 ms 23672 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 13 ms 640 KB Output is correct
3 Correct 14 ms 640 KB Output is correct
4 Correct 8 ms 512 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 11 ms 512 KB Output is correct
7 Correct 11 ms 512 KB Output is correct
8 Correct 13 ms 640 KB Output is correct
9 Correct 10 ms 512 KB Output is correct
10 Correct 13 ms 640 KB Output is correct
11 Correct 15 ms 640 KB Output is correct
12 Correct 9 ms 512 KB Output is correct
13 Incorrect 15 ms 640 KB Unexpected end of file - int32 expected
14 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 13 ms 640 KB Output is correct
3 Correct 14 ms 640 KB Output is correct
4 Correct 8 ms 512 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 11 ms 512 KB Output is correct
7 Correct 11 ms 512 KB Output is correct
8 Correct 13 ms 640 KB Output is correct
9 Correct 10 ms 512 KB Output is correct
10 Correct 13 ms 640 KB Output is correct
11 Correct 15 ms 640 KB Output is correct
12 Correct 9 ms 512 KB Output is correct
13 Correct 586 ms 16248 KB Output is correct
14 Correct 368 ms 11784 KB Output is correct
15 Correct 392 ms 12408 KB Output is correct
16 Correct 423 ms 13304 KB Output is correct
17 Correct 503 ms 14632 KB Output is correct
18 Correct 664 ms 18596 KB Output is correct
19 Correct 443 ms 13432 KB Output is correct
20 Correct 571 ms 11764 KB Output is correct
21 Correct 658 ms 13816 KB Output is correct
22 Correct 723 ms 15716 KB Output is correct
23 Correct 657 ms 16448 KB Output is correct
24 Correct 672 ms 14944 KB Output is correct
25 Correct 684 ms 14892 KB Output is correct
26 Correct 503 ms 12408 KB Output is correct
27 Correct 659 ms 14840 KB Output is correct
28 Correct 691 ms 14928 KB Output is correct
29 Correct 856 ms 17936 KB Output is correct
30 Correct 680 ms 15608 KB Output is correct
31 Correct 590 ms 14076 KB Output is correct
32 Incorrect 814 ms 18164 KB Unexpected end of file - int32 expected
33 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 13 ms 640 KB Output is correct
3 Correct 14 ms 640 KB Output is correct
4 Correct 8 ms 512 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 11 ms 512 KB Output is correct
7 Correct 11 ms 512 KB Output is correct
8 Correct 13 ms 640 KB Output is correct
9 Correct 10 ms 512 KB Output is correct
10 Correct 13 ms 640 KB Output is correct
11 Correct 15 ms 640 KB Output is correct
12 Correct 9 ms 512 KB Output is correct
13 Correct 586 ms 16248 KB Output is correct
14 Correct 368 ms 11784 KB Output is correct
15 Correct 392 ms 12408 KB Output is correct
16 Correct 423 ms 13304 KB Output is correct
17 Correct 503 ms 14632 KB Output is correct
18 Correct 664 ms 18596 KB Output is correct
19 Correct 443 ms 13432 KB Output is correct
20 Correct 571 ms 11764 KB Output is correct
21 Correct 658 ms 13816 KB Output is correct
22 Correct 723 ms 15716 KB Output is correct
23 Correct 657 ms 16448 KB Output is correct
24 Correct 672 ms 14944 KB Output is correct
25 Correct 684 ms 14892 KB Output is correct
26 Correct 503 ms 12408 KB Output is correct
27 Correct 659 ms 14840 KB Output is correct
28 Correct 691 ms 14928 KB Output is correct
29 Correct 856 ms 17936 KB Output is correct
30 Correct 680 ms 15608 KB Output is correct
31 Correct 590 ms 14076 KB Output is correct
32 Correct 601 ms 21500 KB Output is correct
33 Correct 331 ms 12408 KB Output is correct
34 Correct 364 ms 12920 KB Output is correct
35 Correct 530 ms 16864 KB Output is correct
36 Correct 545 ms 16464 KB Output is correct
37 Correct 544 ms 17272 KB Output is correct
38 Correct 724 ms 23672 KB Output is correct
39 Incorrect 15 ms 640 KB Unexpected end of file - int32 expected
40 Halted 0 ms 0 KB -