Algoogle

Algorithm for Programming Contest

PKU 2189 Romeo Meets Juliet

Category: PKU Tag: implementation

Romeo Meets Juliet

問題概要


解法


左側を固定して伸ばせるだけ右に伸ばす. その最大の幅をみればよい

コード


(2189.cpp) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <algorithm>
#include <cstdio>

using namespace std;

int N, P, C;
int fence[1024];

int main(){
    scanf("%d%d%d", &N, &P, &C);
    for(int i = 0; i < N; i++){
        int t; scanf("%d", &t);
        fence[t-1]++;
    }
    int ans = 0;
    for(int l = 0; l < P; l++){
        int r = l;
        int cnt = 0;
        while(cnt + fence[r] <= C && r < P-1){
            cnt += fence[r];
            r++;
        }
        ans = max(ans, r - l);
    }
    printf("%d\n", ans);
    return 0;
}

Comments