#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
vector< vector< int >> groupThePeople( vector< int > & g) {
int i;
int k;
int N = g.size ( ) ;
vector< int > tmp[ 501 ] ;
vector< vector< int >> res;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
k = g[ i] ;
tmp[ k] .push_back ( i) ;
if ( tmp[ k] .size ( ) == k) {
res.push_back ( tmp[ k] ) ;
tmp[ k] .clear ( ) ;
}
}
return res;
}
}
;
// cLay varsion 20191214-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// vector<vector<int>> groupThePeople(vector<int>& g) {
// int i, k, N = g.size();
// vector<int> tmp[501];
// vector<vector<int>> res;
// rep(i,N){
// k = g[i];
// tmp[k].push_back(i);
// if(tmp[k].size() == k){
// res.push_back(tmp[k]);
// tmp[k].clear();
// }
// }
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KY2xhc3MgU29sdXRpb257CiAgcHVibGljOgogIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gZ3JvdXBUaGVQZW9wbGUodmVjdG9yPGludD4mIGcpewogICAgaW50IGk7CiAgICBpbnQgazsKICAgIGludCBOID0gZy5zaXplKCk7CiAgICB2ZWN0b3I8aW50PiB0bXBbNTAxXTsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gcmVzOwogICAgZm9yKGk9KDApO2k8KE4pO2krKyl7CiAgICAgIGsgPSBnW2ldOwogICAgICB0bXBba10ucHVzaF9iYWNrKGkpOwogICAgICBpZih0bXBba10uc2l6ZSgpID09IGspewogICAgICAgIHJlcy5wdXNoX2JhY2sodG1wW2tdKTsKICAgICAgICB0bXBba10uY2xlYXIoKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHJlczsKICB9Cn0KOwovLyBjTGF5IHZhcnNpb24gMjAxOTEyMTQtMQoKLy8gLS0tIG9yaWdpbmFsIGNvZGUgLS0tCi8vICNkZWZpbmUgbWFpbiBkdW1teV9tYWluCi8vIHt9Ci8vICN1bmRlZiBtYWluCi8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICB2ZWN0b3I8dmVjdG9yPGludD4+IGdyb3VwVGhlUGVvcGxlKHZlY3RvcjxpbnQ+JiBnKSB7Ci8vICAgICBpbnQgaSwgaywgTiA9IGcuc2l6ZSgpOwovLyAgICAgdmVjdG9yPGludD4gdG1wWzUwMV07Ci8vICAgICB2ZWN0b3I8dmVjdG9yPGludD4+IHJlczsKLy8gICAgIHJlcChpLE4pewovLyAgICAgICBrID0gZ1tpXTsKLy8gICAgICAgdG1wW2tdLnB1c2hfYmFjayhpKTsKLy8gICAgICAgaWYodG1wW2tdLnNpemUoKSA9PSBrKXsKLy8gICAgICAgICByZXMucHVzaF9iYWNrKHRtcFtrXSk7Ci8vICAgICAgICAgdG1wW2tdLmNsZWFyKCk7Ci8vICAgICAgIH0KLy8gICAgIH0KLy8gICAgIHJldHVybiByZXM7Ci8vICAgfQovLyB9Owo=