NC24005. [USACO 2016 Jan B]Angry Cows
描述
输入描述
The first line of input contains N (1≤N≤100). The remaining N lines all contain integers x1…xN (each in the range 0…1,000,000,000).
输出描述
Please output the maximum number of hay bales that a single cow can cause to explode.
示例1
输入:
6 8 5 6 13 3 4
输出:
5
说明:
In this example, launching a cow onto the hay bale at position 5 will cause the bales at positions 4 and 6 to explode, each with blast radius 2. These explosions in turn cause the bales at positions 3 and 8 to explode, each with blast radius 3. However, these final explosions are not strong enough to reach the bale at position 13.C++14(g++5.4) 解法, 执行用时: 2ms, 内存消耗: 412K, 提交时间: 2020-09-29 22:36:06
#include<bits/stdc++.h> using namespace std; int main(){ int i,j,k,t,flag,ans=0,s1,s2,n,a[105]; scanf("%d",&n); for(i=0;i<n;i++)scanf("%d",&a[i]); sort(a,a+n); for(i=0;i<n;i++) { flag=k=1,j=i-1,t=i; while(flag) { flag=0; while(j>=0&&a[t]-a[j]<=k)flag=1,j--; k++,t=j+1; } s1=i-t; flag=k=1,j=i+1,t=i; while(flag) { flag=0; while(j<n&&a[j]-a[t]<=k)flag=1,j++; k++,t=j-1; } s2=t-i; ans=max(ans,s1+s2+1); } printf("%d\n",ans); return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 396K, 提交时间: 2020-09-21 08:56:49
#include<bits/stdc++.h> using namespace std; int main() { int i,j,k,t,flag,ans=0,s1,s2,n,a[105]; scanf("%d",&n); for(i=0;i<n;i++)scanf("%d",&a[i]); sort(a,a+n); for(i=0;i<n;i++) { flag=k=1,j=i-1,t=i; while(flag) { flag=0; while(j>=0&&a[t]-a[j]<=k)flag=1,j--; k++,t=j+1; } s1=i-t; flag=k=1,j=i+1,t=i; while(flag) { flag=0; while(j<n&&a[j]-a[t]<=k)flag=1,j++; k++,t=j-1; } s2=t-i; ans=max(ans,s1+s2+1); } printf("%d\n",ans); return 0; }