1. 程式人生 > >B. Views Matter

B. Views Matter

連結

[http://codeforces.com/contest/1061/problem/B]

題意

問你最多去掉多少塊使得從上和右看,投影圖不變

分析

注意細節,尤其第一列

程式碼

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll a[100010];
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    //freopen("in.txt","r",stdin);
    ll n,m,i;
    while(cin>>n>>m){
        for(i=0;i<n;i++)
        cin>>a[i];
        sort(a,a+n);
        ll ma=a[n-1];
        ll sum=0,j=1;
        for(i=0;i<n;i++){
            if(i==n-1&&j<=ma) sum+=j-1;
            else if(a[i]>=j&&j<=ma&&i!=0) sum+=a[i]-1,j++;  
            else if(i==0&&a[i]>1) sum+=a[i]-1,j++;
            else if(i==0&&a[i]==1) j++;
            else if(a[i]>1) sum+=a[i]-1;
            //cout<<sum<<endl;  
        }
        cout<<sum<<endl;
    }
    return 0;
}