1 solutions
-
1
轻轻又松松,19行
#include <bits/stdc++.h> using namespace std; map<int,int> mp; int main(){ int n,x,ans = 0; scanf("%d",&n); for(int i = 1;i<=n;i++){ scanf("%d",&x); mp[x]++; } for(int j = 0;j<=x;j++){ if(mp[j]/2 && j == x)x++; mp[j+1]+=mp[j]/2; mp[j] = mp[j]%2; if(!mp[j])ans++; } printf("%d",ans); return 0; }
- 1
Information
- ID
- 686
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- (None)
- # Submissions
- 12
- Accepted
- 4
- Uploaded By