本文共 1005 字,大约阅读时间需要 3 分钟。
这道题是道思维题,但也很特别,有点套路人。把数据弄得很大,让你以为暴力没法解决,就去想方设法去做,结果呢,暴力直接就过了,它所准备的样例遍历几组数据就可以过了,不用遍历出所有情况。
具体原理可参考以下博客: 代码如下:#include#include #include #include typedef long long ll;using namespace std;const int inf=0x3f3f3f3f;const int maxn=5e6+5;int a[maxn];int main(){ int n,i,j,k,flag; ll len,ma; while(~scanf("%d",&n)) { for(i=0;i<=n-1;i++) scanf("%d",&a[i]); flag=0; for(i=0;i<=n-3;i++) { for(j=i+1;j<=n-2;j++) { for(k=j+1;k<=n-1;k++) { len=(ll)a[i]+(ll)a[j]+(ll)a[k]; ma=max(a[i],max(a[j],a[k])); if(len-ma>ma) { flag=1;break; } } if(flag) break; } if(flag) break; } if(flag) printf("YES\n"); else printf("NO\n"); } return 0;}
转载地址:http://cddci.baihongyu.com/