Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #define max(x,y) ((x>y)?x:y)
- #define N_MAX 100000
- using namespace std;
- int len[N_MAX];
- int data[N_MAX];
- main(){
- int n,l;
- scanf("%d%d",&n,&l);
- for(int i=0;i<n;i++) scanf("%d",len+i);
- if(len[0] > len[1]) data[0] = l - len[0];
- if(len[n-2] < len[n-1]) data[n-1] = l - len[n-1];
- for(int i=1;i<n-1;i++){
- if(len[i] > len[i+1]){
- if(len[i-1] < len[i]){
- data[i] = l-len[i];
- }else {
- data[i] = data[i-1] + l - len[i];
- }
- }
- }
- for(int i=n-2;i>=1;i--){
- if(len[i] < len[i+1]){
- if(len[i-1] < len[i]){
- data[i] = data[i+1] + l - len[i];
- }else{
- data[i] = max(data[i], data[i+1] + l - len[i]);
- }
- }
- }
- if(len[0] < len[1]) data[0] = data[1] + l - len[0];
- if(len[n-2] > len[n-1]) data[n-1] = data[n-2] + l - len[n-1];
- sort(data,data+n);
- printf("%d\n", data[n-1]);
- }
Add Comment
Please, Sign In to add comment