Southern Subregion Problem K. Road Work

来源:互联网 发布:ubuntu tar 编辑:程序博客网 时间:2024/05/21 16:57

贪心

#include <bits/stdc++.h>using namespace std;const int maxn=300050;int d[maxn]; vector<int>L;vector<int>R;int main(){int n;cin>>n;for(int i=1;i<=n;i++){scanf("%d",&d[i]);}for(int i=1;i<=n;i++){int r=0x3f3f3f3f;int wh,ans1,ans2;for(int j=i;j<=n;j++){r=min(min(n,r),j+d[j]-1);if(j==r){ans1=j;break;}}for(int j=i;j<=n;j++){int l_now=max(i,j-d[j]+1);if(l_now>i) break;else ans2=j;}wh=max(ans1,ans2);if(ans1<ans2){L.push_back(i);R.push_back(wh);}else {L.push_back(wh);R.push_back(i);}i=wh;}int siz=L.size();cout<<siz<<endl;for(int i=0;i<siz;i++){cout<<L[i]<<" "<<R[i]<<endl;}}

0 0
原创粉丝点击