839B - Game of the Rows
思路:先放4个的,然后再放2个的,最后再放1个的。
代码:
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset((a),(b),sizeof(a)) int a[105];int main() {int n,k;cin>>n>>k;int c2=n*2; int c4=n;for(int i=1;i<=k;i++)cin>>a[i];for(int i=1;i<=k;i++){int c=min(c4,a[i]/4);c4-=c;a[i]-=c*4;}c2+=c4;//剩下的4个连在一起的也可以放2个的 for(int i=1;i<=k;i++){int c=min(c2,a[i]/2);c2-=c;a[i]-=c*2;}int t=c2+c4;//原来的4个连在一起的放二个的时候只放了一半,而且放了一半也可能没放满 for(int i=1;i<=k;i++){t-=a[i];}if(t<0)cout<<"NO"<<endl;else cout<<"YES"<<endl;return 0; }