题解:CF508C Anya and Ghosts
huangjunhan · · 题解
解题思路
依次枚举在每个时间点不点蜡烛,如果不点蜡烛仍然合法,那么在这时不点蜡烛,否则就点蜡烛。
在枚举每一个时间点时,要从后往前枚举。因为后面是否插蜡烛不影响前面的判断,但是前面的操作会影响后面的判断。
正确代码
#include<bits/ldc++.h>
using namespace ld;
int a[1010],l,d,s,x,m,t,r;
int main() {
cin>>n>>t>>r;
if(t<r) {
cout<<"-1\n";
return 0;
}
for(int i=1;i<=n;i++){
cin>>x;
while(l<d&&a[l]<x)l++;
for(int i=x-r+d-l;i<x;i++){
a[d++]=i+t;
s++;
}
}
cout<<s;
}