Code:
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#define sz(a) int((a).size())
#define pb push_back
#define all(c) (c).begin(),(c).end()
#define REP(i,n) for(int _n=n, i=0;i<_n;++i)
#define FOREACH(it,c) for(typeof((c).begin()) it=(c).begin();it!=(c).end();++it)
#define max 1000001
using namespace std;
class KiloManX {
public:
int leastShots(vector <string>, vector <int>);
};
int KiloManX::leastShots(vector <string> damageChart, vector <int> bossHealth)
{
int n,m;
n=sz(damageChart);
int i,j;
vector<int> damage[n];
REP(i,n)
REP(j,n)
{
if(damageChart[i][j]!='0')
damage[i].push_back( ceil( bossHealth[j]/float(damageChart[i][j]-'0') ) );
else
damage[i].pb(max);
}
vector<int> d(n,max);
set<pair<int,int> > q;
int shots=1;
int start=bossHealth.begin()-find(all(bossHealth),min_element(all(bossHealth) ) );
d[start]=*min_element(all(bossHealth));
q.insert(make_pair(d[start],start));
while(!q.empty())
{
pair<int ,int> top;
top=*q.begin();
q.erase(q.begin());
int cost=top.first;
int index=top.second;
REP(j,n)
{
if(d[j]>damage[index][j]+cost)
{
if(d[j]!=max)
q.erase(q.find(make_pair(d[j],j)));
d[j]=damage[index][j]+cost;
q.insert(make_pair(d[j],j));
}
}
}
return *max_element(all(d));
}
//error code
KiloManX.cpp:42: warning: passing `float' for converting 1 of `void std::vector<_Tp, _Alloc>:ush_back(const _Tp&) [with _Tp = int, _Alloc = std::allocator<int>]'
KiloManX.cpp: In function `int main()':
KiloManX.cpp:228: warning: converting to `int' from `double'
KiloManX.cpp:232: warning: converting to `int' from `double'
KiloManX.cpp:236: warning: converting to `int' from `double'
KiloManX.cpp:240: warning: converting to `int' from `double'
KiloManX.cpp:244: warning: converting to `int' from `double'
C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h: In function `_RandomAccessIterator std::find(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, std::random_access_iterator_tag) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, _Tp = __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >]':
C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h:314: instantiated from `_InputIterator std::find(_InputIterator, _InputIterator, const _Tp&) [with _InputIterator = __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, _Tp = __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >]'
KiloManX.cpp:48: instantiated from here
C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h:207: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>:perator* [with _Iterator = int*, _Container = std::vector<int, std::allocator<int> >]() == __val'
C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h:211: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>:perator* [with _Iterator = int*, _Container = std::vector<int, std::allocator<int> >]() == __val'
C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h:215: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>:perator* [with _Iterator = int*, _Container = std::vector<int, std::allocator<int> >]() == __val'
C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h:219: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>:perator* [with _Iterator = int*, _Container = std::vector<int, std::allocator<int> >]() == __val'
C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h:227: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>:perator* [with _Iterator = int*, _Container = std::vector<int, std::allocator<int> >]() == __val'
C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h:231: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>:perator* [with _Iterator = int*, _Container = std::vector<int, std::allocator<int> >]() == __val'
C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algo.h:235: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>:perator* [with _Iterator = int*, _Container = std::vector<int, std::allocator<int> >]() == __val'
Compiling errors
Ps:
Can anyone tell me how to make sense of the error messages especially when most of the line numbers mentioned dont exist in the code.EG-235