1 해설
-
3
题目链接
来源 CZOJ。
题目思路
考虑贪心,对于每个为 的位置只设置比前面高 ,尽可能的让后面的位置选的高度数量更多。
完整代码
#include<bits/stdc++.h> using namespace std; int n; int ans[100020]; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>ans[i]; if(ans[i]==0)ans[i]=ans[i-1]+1; } for(int i=1;i<=n;i++) { if(ans[i]<=ans[i-1]||ans[i]>1000000000||ans[i]<=0) { puts("NO"); return 0; } } puts("YES"); for(int i=1;i<=n;i++) { cout<<ans[i]<<" "; } cout<<endl; return 0; }
- 1
정보
- ID
- 674
- 시간
- 1000ms
- 메모리
- 256MiB
- 난이도
- 1
- 태그
- 제출 기록
- 175
- 맞았습니다.
- 70
- 아이디