#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
void * wmem;
char memarr[ 96000000 ] ;
template < class T> inline void walloc1d( T ** arr, int x, void ** mem = & wmem) {
static int skip[ 16 ] = { 0 , 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 } ;
( * mem) = ( void * ) ( ( ( char * ) ( * mem) ) + skip[ ( ( unsigned long long ) ( * mem) ) & 15 ] ) ;
( * arr) = ( T* ) ( * mem) ;
( * mem) = ( ( * arr) + x) ;
}
template < class T1> void sortA_L( int N, T1 a[ ] , void * mem = wmem) {
sort( a, a+ N) ;
}
template < class T1, class T2> void sortA_L( int N, T1 a[ ] , T2 b[ ] , void * mem = wmem) {
int i;
pair< T1, T2> * arr;
walloc1d( & arr, N, & mem) ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
arr[ i] .first = a[ i] ;
arr[ i] .second = b[ i] ;
}
sort( arr, arr+ N) ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
a[ i] = arr[ i] .first ;
b[ i] = arr[ i] .second ;
}
}
#define main dummy_main
int main( ) {
wmem = memarr;
return 0 ;
}
#undef main
int ind[ 100 ] ;
int cnt[ 100 ] ;
class Solution{
public :
vector< int > kWeakestRows( vector< vector< int >> & mat, int k) {
int i;
dummy_main( ) ;
int X = mat.size ( ) ;
int Y = mat[ 0 ] .size ( ) ;
vector< int > res;
for ( i= ( 0 ) ; i< ( X) ; i++ ) {
ind[ i] = i;
{
int Q5VJL1cS;
int e98WHCEY;
if ( Y== 0 ) {
e98WHCEY = 0 ;
}
else {
e98WHCEY = mat[ i] [ 0 ] ;
for ( Q5VJL1cS= ( 1 ) ; Q5VJL1cS< ( Y) ; Q5VJL1cS++ ) {
e98WHCEY + = mat[ i] [ Q5VJL1cS] ;
}
}
cnt[ i] = e98WHCEY;
}
}
sortA_L( X,cnt,ind) ;
for ( i= ( 0 ) ; i< ( k) ; i++ ) {
res.push_back ( ind[ i] ) ;
}
return res;
}
}
;
// cLay varsion 20200214-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int ind[100], cnt[100];
//
// class Solution {
// public:
// vector<int> kWeakestRows(vector<vector<int>>& mat, int k) {
// dummy_main();
// int X = mat.size();
// int Y = mat[0].size();
// vector<int> res;
//
// rep(i,X){
// ind[i] = i;
// cnt[i] = sum(mat[i](Y));
// }
// sortA(X,cnt,ind);
// rep(i,k) res.push_back(ind[i]);
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgKndtZW07CmNoYXIgbWVtYXJyWzk2MDAwMDAwXTsKdGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIHZvaWQgd2FsbG9jMWQoVCAqKmFyciwgaW50IHgsIHZvaWQgKiptZW0gPSAmd21lbSl7CiAgc3RhdGljIGludCBza2lwWzE2XSA9IHswLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxfTsKICAoKm1lbSkgPSAodm9pZCopKCAoKGNoYXIqKSgqbWVtKSkgKyBza2lwWygodW5zaWduZWQgbG9uZyBsb25nKSgqbWVtKSkgJiAxNV0gKTsKICAoKmFycik9KFQqKSgqbWVtKTsKICAoKm1lbSk9KCgqYXJyKSt4KTsKfQp0ZW1wbGF0ZTxjbGFzcyBUMT4gdm9pZCBzb3J0QV9MKGludCBOLCBUMSBhW10sIHZvaWQgKm1lbSA9IHdtZW0pewogIHNvcnQoYSwgYStOKTsKfQp0ZW1wbGF0ZTxjbGFzcyBUMSwgY2xhc3MgVDI+IHZvaWQgc29ydEFfTChpbnQgTiwgVDEgYVtdLCBUMiBiW10sIHZvaWQgKm1lbSA9IHdtZW0pewogIGludCBpOwogIHBhaXI8VDEsIFQyPiAqYXJyOwogIHdhbGxvYzFkKCZhcnIsIE4sICZtZW0pOwogIGZvcihpPSgwKTtpPChOKTtpKyspewogICAgYXJyW2ldLmZpcnN0ID0gYVtpXTsKICAgIGFycltpXS5zZWNvbmQgPSBiW2ldOwogIH0KICBzb3J0KGFyciwgYXJyK04pOwogIGZvcihpPSgwKTtpPChOKTtpKyspewogICAgYVtpXSA9IGFycltpXS5maXJzdDsKICAgIGJbaV0gPSBhcnJbaV0uc2Vjb25kOwogIH0KfQojZGVmaW5lIG1haW4gZHVtbXlfbWFpbgppbnQgbWFpbigpewogIHdtZW0gPSBtZW1hcnI7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KaW50IGluZFsxMDBdOwppbnQgY250WzEwMF07CmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICB2ZWN0b3I8aW50PiBrV2Vha2VzdFJvd3ModmVjdG9yPHZlY3RvcjxpbnQ+PiYgbWF0LCBpbnQgayl7CiAgICBpbnQgaTsKICAgIGR1bW15X21haW4oKTsKICAgIGludCBYID0gbWF0LnNpemUoKTsKICAgIGludCBZID0gbWF0WzBdLnNpemUoKTsKICAgIHZlY3RvcjxpbnQ+IHJlczsKICAgIGZvcihpPSgwKTtpPChYKTtpKyspewogICAgICBpbmRbaV0gPSBpOwogICAgICB7CiAgICAgICAgaW50IFE1VkpMMWNTOwogICAgICAgIGludCBlOThXSENFWTsKICAgICAgICBpZihZPT0wKXsKICAgICAgICAgIGU5OFdIQ0VZID0gMDsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgIGU5OFdIQ0VZID0gbWF0W2ldWzBdOwogICAgICAgICAgZm9yKFE1VkpMMWNTPSgxKTtRNVZKTDFjUzwoWSk7UTVWSkwxY1MrKyl7CiAgICAgICAgICAgIGU5OFdIQ0VZICs9IG1hdFtpXVtRNVZKTDFjU107CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNudFtpXSA9ZTk4V0hDRVk7CiAgICAgIH0KICAgIH0KICAgIHNvcnRBX0woWCxjbnQsaW5kKTsKICAgIGZvcihpPSgwKTtpPChrKTtpKyspewogICAgICByZXMucHVzaF9iYWNrKGluZFtpXSk7CiAgICB9CiAgICByZXR1cm4gcmVzOwogIH0KfQo7Ci8vIGNMYXkgdmFyc2lvbiAyMDIwMDIxNC0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGludCBpbmRbMTAwXSwgY250WzEwMF07Ci8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICB2ZWN0b3I8aW50PiBrV2Vha2VzdFJvd3ModmVjdG9yPHZlY3RvcjxpbnQ+PiYgbWF0LCBpbnQgaykgewovLyAgICAgZHVtbXlfbWFpbigpOwovLyAgICAgaW50IFggPSBtYXQuc2l6ZSgpOwovLyAgICAgaW50IFkgPSBtYXRbMF0uc2l6ZSgpOwovLyAgICAgdmVjdG9yPGludD4gcmVzOwovLyAKLy8gICAgIHJlcChpLFgpewovLyAgICAgICBpbmRbaV0gPSBpOwovLyAgICAgICBjbnRbaV0gPSBzdW0obWF0W2ldKFkpKTsKLy8gICAgIH0KLy8gICAgIHNvcnRBKFgsY250LGluZCk7Ci8vICAgICByZXAoaSxrKSByZXMucHVzaF9iYWNrKGluZFtpXSk7Ci8vICAgICByZXR1cm4gcmVzOwovLyAgIH0KLy8gfTsK