fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int mex(int n,vector<int> v){
  5. unordered_set<int> s;
  6. for(int i=1;i<n+2; i++){
  7. s.insert(i);
  8. }
  9. for(auto val:v) if (s.find(val)!=s.end()) s.erase(val);
  10. return *min_element(s.begin(),s.end());
  11. }
  12.  
  13.  
  14. int solve(int N,int M,vector<vector<int>>Arr){
  15. int op=0;
  16. for(int i=0;i<N;++i){
  17. op=max(op,mex(M,Arr[i]));
  18. }
  19. cout<<op<<endl;
  20. int ans=0;
  21. for(int i=0;i<N;++i){
  22. map<int,int>m;
  23. for(int j=0;j<M;++j){
  24. if(Arr[i][j]<op)
  25. m[Arr[i][j]]++;
  26. }
  27. int rem=m.size();
  28. ans+=(op-rem-1);
  29. }
  30. return ans;
  31. }
  32.  
  33. int main(){
  34. int n,m;
  35. cin >> n >> m;
  36. vector<vector<int>>a;
  37. for(int i=0;i<n;++i){
  38. vector<int>s;
  39. for(int j=0;j<m;++j){
  40. int op;
  41. cin >> op;
  42. s.push_back(op);
  43. }
  44. a.push_back(s);
  45. }
  46. cout<<solve(n,m,a)<<endl;
  47. }
Success #stdin #stdout 0.01s 5392KB
stdin
2
4
2 3 5 7
1 4 5 6
stdout
2
1