AGC002 C - Knot Puzzle(思维,构造)

题意:

在这里插入图片描述

解法:
最后一次操作一定是两个相邻绳子拆开,
因此我们找到长度和最大的相邻绳子,
如果<L,那么无解,否则可以利用这段>=L的,去将其他绳结全部解开.
code:
#include 
#define int long long
using namespace std;
const int maxm=2e6+5;
int a[maxm];
int n,L;
signed main(){ios::sync_with_stdio(0);cin>>n>>L;for(int i=1;i<=n;i++){cin>>a[i];}int pos=1;for(int i=1;i<n;i++){if(a[i]+a[i+1]>a[pos]+a[pos+1]){pos=i;}}if(a[pos]+a[pos+1]<L){cout<<"Impossible"<<endl;}else{cout<<"Possible"<<endl;for(int i=1;i<pos;i++){cout<<i<<endl;}for(int i=n-1;i>pos;i--){cout<<i<<endl;}cout<<pos<<endl;}return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部