Sicily 13910. Opening Ceremony

来源:互联网 发布:javascript调用数据库 编辑:程序博客网 时间:2024/06/10 01:25

贪心算法:比较底部可以消去一行的个数和最高塔那个多,消去多的那个,数据有点多,用c输入比较好


#include <iostream>#include <algorithm>#include <cstdio> using namespace std;int arr[1000000];int main(){int n;scanf("%d",&n);for(int i=0; i < n; ++i)scanf("%d",&arr[i]);sort(arr,arr+n);int max_high=n-1,count=0;int nozero=-1;while(true){if(arr[max_high] >= max_high-nozero+1){arr[max_high]=0;max_high--;count++;}else{bool check=false;for(int i=0; i <= max_high; ++i){arr[i]--;if(arr[i]>0&&check==false){check=true;nozero=i;}}count++;}int k;for(k=0; k < n; ++k){if(arr[k] > 0) break;}if(k == n) break;}printf("%d\n",count);} 

0 0
原创粉丝点击